forked from tim-janik/anklang
-
Notifications
You must be signed in to change notification settings - Fork 0
133 lines (125 loc) · 4.47 KB
/
testing.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# This Source Code Form is licensed MPL-2.0: http://mozilla.org/MPL/2.0
# Linting: xclip -sel c <.github/workflows/testing.yml # https://rhysd.github.io/actionlint/
on:
push:
branches: [ 'trunk', 'next', 'wip/**' ]
tags: [ 'v[0-9]+.[0-9]+.[0-9]+*' ]
pull_request:
branches: ['trunk', 'next']
jobs:
Focal-Assets:
runs-on: ubuntu-latest
env:
CITAG: focal
CICACHE: /tmp/cicache
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v3
with:
key: cifocal-${{hashFiles ('misc/Dockerfile.focal')}}
path: /tmp/cicache
- name: 'Prepare Docker Image'
run: |
echo -e ' prefix=/\n CC=clang \n CXX=clang++ \n CLANG_TIDY=clang-tidy ' > config-defaults.mk
misc/cirun -u 1000 misc/version.sh
- name: 'Build Dist Assets'
run: |
misc/cirun -u 1000 make mkassets
- uses: actions/[email protected]
with: { name: assets, path: assets/ }
- uses: actions/[email protected]
with: { name: dist-tarball, path: assets/*.tar* }
- name: 'Upload API Docs' # http://tim-janik.github.io/docs/anklang
if: github.ref == 'refs/heads/trunk'
run: |
misc/cirun -u 1000 make -j`nproc` all
(umask 0077 && cat <<< "${{ secrets.SSH_ID_GHDOCS4ANKLANG_ECDSA }}" > .git/.ssh_id_ghdocs4anklang)
misc/cirun -u 1000 doc/poxy.sh -b -u
Arch-Replay:
runs-on: ubuntu-latest
env:
CITAG: arch
CICACHE: /tmp/cicache
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v3
with:
key: ciarch-${{hashFiles ('misc/Dockerfile.arch')}}
path: /tmp/cicache
- name: 'Prepare Docker Image'
run: |
# Test the most recent g++ via Arch
echo -e ' prefix=/\n' > config-defaults.mk
misc/cirun -u 1000 misc/version.sh
- name: 'Run X11 GUI Tests'
run: |
misc/cirun -u 1000 make GCC_COLORS="" -j`nproc` all
misc/cirun -u 1000 make -j`nproc` check
misc/cirun -u 1000 make x11test-v
# Artifact upload from x11test
- uses: actions/[email protected]
if: always()
with:
name: x11test
path: out/x11test/
Focal-Clang-Tidy:
if: ${{ ! contains(github.ref, 'refs/tags/') }}
runs-on: ubuntu-latest
env:
CITAG: focal
CICACHE: /tmp/cicache
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v3
with:
key: cifocal-${{hashFiles ('misc/Dockerfile.focal')}}
path: /tmp/cicache
- name: 'Prepare Docker Image'
run: |
echo -e ' prefix=/\n CC=clang \n CXX=clang++ \n CLANG_TIDY=clang-tidy ' > config-defaults.mk
misc/cirun -u 1000 misc/version.sh
- name: 'Make all check'
run: |
misc/cirun -u 1000 make -j`nproc` all
misc/cirun -u 1000 make -j`nproc` check
- name: 'Make clang-tidy'
run: |
misc/cirun -u 1000 make -j`nproc` clang-tidy
# Artifact upload from clang-tidy
- uses: actions/[email protected]
with: { name: clang-tidy, path: out/clang-tidy/ }
Release-Upload:
needs: [Focal-Assets, Arch-Replay]
if: github.event_name == 'push' && contains(github.ref, 'refs/tags/')
env:
GH_TOKEN: ${{ github.token }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Download Release Assets
uses: actions/download-artifact@v3
- run: ls -lR assets/
- name: Create Release with Assets
run: misc/publish.sh
Ping-IRC:
if: always()
needs: [Focal-Assets, Arch-Replay, Focal-Clang-Tidy, Release-Upload]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Check Jobs
run: |
echo '${{ needs.Focal-Assets.result }}' '${{ needs.Arch-Replay.result }}' '${{ needs.Focal-Clang-Tidy.result }}' '${{ needs.Release-Upload.result }}'
[[ ${{ needs.Focal-Assets.result }} =~ success|skipped ]]
[[ ${{ needs.Arch-Replay.result }} =~ success|skipped ]]
[[ ${{ needs.Focal-Clang-Tidy.result }} =~ success|skipped ]]
[[ ${{ needs.Release-Upload.result }} =~ success|skipped ]]
- name: Ping IRC
if: always()
run: |
R='${{ github.repository }}' && R=${R#*/}
B='${{ github.ref }}' && B=${B#refs/heads/}
S='${{ job.status }}' && URL='${{ github.event.head_commit.url }}'
U='${{ github.actor }}' && B="$(git branch --show-current)"
MSG=$(git log -1 --format='%s')
.github/workflows/ircbot.py -q -j "#Anklang" -R "$R" -U "$U" -D "$B" -S "$S" "$MSG" "$URL"