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 : ghcr.io/steinwurf/build-images/zig-cpp
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+ apk add --no-cache \
65+ python3 \
66+ py3-pip \
67+ git \
68+ cmake \
69+ build-base
70+ - name : Waf Clean
71+ run : python3 waf clean --no_resolve
72+ - name : Waf Configure with Zig Toolchain
73+ run : python3 waf configure --git_protocol=git@ --cmake_toolchain=./resolve_symlinks/toolchains/zig-toolchain-x86_64-linux-musl.cmake --cmake_verbose
74+ - name : Waf Build with Zig Toolchain
75+ run : python3 waf build --run_tests
76+
77+ macos_cmake :
78+ timeout-minutes : 45
79+ strategy :
80+ fail-fast : false
81+ matrix :
82+ config :
83+ - arch : ARM64
84+ os : big_sur
85+ name : Apple Big Sur (ARM)
86+ toolchain : " ./resolve_symlinks/toolchains/clang-toolchain.cmake"
87+ runs-on :
88+ - self-hosted
89+ - macOS
90+ - ${{ matrix.config.os }}
91+ - ${{ matrix.config.arch }}
92+ - cmake
93+ - builder
94+ name : ${{ matrix.config.name }}
95+ steps :
96+ - name : Checkout
97+ uses : actions/checkout@v3
98+ - name : Waf Clean
99+ run : python3 waf clean --no_resolve
100+ - name : Waf Configure
101+ run : python3 waf configure --git_protocol=git@ --cmake_toolchain=${{ matrix.config.toolchain }} --cmake_verbose
102+ - name : Waf Build
103+ run : python3 waf build --run_tests
104+
105+ windows_cmake :
106+ timeout-minutes : 45
107+ strategy :
108+ fail-fast : false
109+ runs-on :
110+ - self-hosted
111+ - windows
112+ - vm
113+ - windows-current
114+ name : Windows
115+ steps :
116+ - name : Checkout
117+ uses : actions/checkout@v3
118+ - name : Waf Clean
119+ run : python waf clean --no_resolve
120+ - name : Waf Configure
121+ run : python waf configure --git_protocol=git@ --cmake_verbose
122+ - name : Waf Build
123+ run : python waf build --run_tests
124+
125+ workflow-keepalive :
126+ if : github.event_name == 'schedule'
127+ runs-on : [self-hosted, vm, ubuntu-current]
128+ permissions :
129+ actions : write
130+ steps :
131+ - name : Install GitHub CLI
132+ run : |
133+ sudo apt update
134+ sudo apt install -y gh
135+ - uses : liskin/gh-workflow-keepalive@v1
0 commit comments