1+ name : C++ External
2+
3+ on :
4+ schedule :
5+ - cron : 0 1 * * *
6+ push :
7+ branches :
8+ - master
9+ pull_request :
10+
11+ concurrency :
12+ group : ${{ github.workflow }}-${{ github.ref || github.run_id }}
13+ cancel-in-progress : true
14+
15+ jobs :
16+ linux_cmake :
17+ timeout-minutes : 45
18+ strategy :
19+ fail-fast : false
20+ matrix :
21+ config :
22+ - runner : ubuntu-current
23+ name : GCC Latest
24+ toolchain : " ./resolve_symlinks/toolchains/gcc-toolchain.cmake"
25+ - runner : ubuntu-current
26+ name : Clang Latest
27+ toolchain : " ./resolve_symlinks/toolchains/clang-toolchain.cmake"
28+ - runner : ubuntu-old
29+ name : GCC Oldest
30+ toolchain : " ./resolve_symlinks/toolchains/gcc-toolchain.cmake"
31+ - runner : ubuntu-old
32+ name : Clang Oldest
33+ toolchain : " ./resolve_symlinks/toolchains/clang-toolchain.cmake"
34+ runs-on :
35+ - self-hosted
36+ - vm
37+ - ${{ matrix.config.runner }}
38+ name : ${{ matrix.config.name }}
39+ steps :
40+ - name : Ensure correct owner of repository
41+ run : sudo chown -R actions-runner:actions-runner .
42+ - name : Checkout source code
43+ uses : actions/checkout@v3
44+ - name : Waf Clean
45+ run : python3 waf clean --no_resolve
46+ - name : Waf Configure
47+ run : python3 waf configure --git_protocol=git@ --cmake_toolchain=${{ matrix.config.toolchain }} --cmake_verbose
48+ - name : Waf Build
49+ run : python3 waf build --run_tests
50+
51+ zig_toolchain_build :
52+ name : Zig Toolchain Build (Docker)
53+ runs-on : [self-hosted, vm, ubuntu-current]
54+ container :
55+ image : kassany/bookworm-ziglang
56+ options : --user 0:0
57+ volumes :
58+ - /root/.ssh:/root/.ssh
59+ steps :
60+ - name : Checkout source code
61+ uses : actions/checkout@v4
62+ - name : Install dependencies
63+ run : |
64+ apt-get update
65+ apt-get install -y python3 python3-pip git cmake build-essential
66+ - name : Waf Clean
67+ run : python3 waf clean --no_resolve
68+ - name : Waf Configure with Zig Toolchain
69+ run : python3 waf configure --git_protocol=git@ --cmake_toolchain=../resolve_symlinks/toolchains/zig-toolchain-x86_64-linux-musl.cmake --cmake_verbose
70+ - name : Waf Build with Zig Toolchain
71+ run : python3 waf build --run_tests
72+
73+ macos_cmake :
74+ timeout-minutes : 45
75+ strategy :
76+ fail-fast : false
77+ matrix :
78+ config :
79+ - arch : ARM64
80+ os : big_sur
81+ name : Apple Big Sur (ARM)
82+ toolchain : " ./resolve_symlinks/toolchains/clang-toolchain.cmake"
83+ runs-on :
84+ - self-hosted
85+ - macOS
86+ - ${{ matrix.config.os }}
87+ - ${{ matrix.config.arch }}
88+ - cmake
89+ - builder
90+ name : ${{ matrix.config.name }}
91+ steps :
92+ - name : Checkout
93+ uses : actions/checkout@v3
94+ - name : Waf Clean
95+ run : python3 waf clean --no_resolve
96+ - name : Waf Configure
97+ run : python3 waf configure --git_protocol=git@ --cmake_toolchain=${{ matrix.config.toolchain }} --cmake_verbose
98+ - name : Waf Build
99+ run : python3 waf build --run_tests
100+
101+ windows_cmake :
102+ timeout-minutes : 45
103+ strategy :
104+ fail-fast : false
105+ runs-on :
106+ - self-hosted
107+ - windows
108+ - vm
109+ - windows-current
110+ name : Windows
111+ steps :
112+ - name : Checkout
113+ uses : actions/checkout@v3
114+ - name : Waf Clean
115+ run : python waf clean --no_resolve
116+ - name : Waf Configure
117+ run : python waf configure --git_protocol=git@ --cmake_verbose
118+ - name : Waf Build
119+ run : python waf build --run_tests
120+
121+ workflow-keepalive :
122+ if : github.event_name == 'schedule'
123+ runs-on : [self-hosted, vm, ubuntu-current]
124+ permissions :
125+ actions : write
126+ steps :
127+ - name : Install GitHub CLI
128+ run : |
129+ sudo apt update
130+ sudo apt install -y gh
131+ - uses : liskin/gh-workflow-keepalive@v1
0 commit comments