1212jobs :
1313 build_windows :
1414 name : Build Windows
15- # runs-on: [self-hosted, Windows, x64]
1615 runs-on : ' windows-latest'
1716
1817 steps :
1918 - name : Checkout
2019 uses : actions/checkout@v4
21- # - name: Setup SSH Auth
22- # if: runner.environment == 'github-hosted'
23- # uses: webfactory/[email protected] 24- # with:
25- # ssh-private-key: ${{ secrets.SSH_KEY }}
2620 - name : Setup MSYS2
2721 uses : msys2/setup-msys2@v2
2822 - name : Build
@@ -51,32 +45,27 @@ jobs:
5145
5246 build_macos :
5347 name : Build MacOS
54- # runs-on: [self-hosted, macOS]
5548 runs-on : ' macos-14'
5649
5750 steps :
5851 - name : Checkout
5952 uses : actions/checkout@v4
6053 - name : Set up arm64 Homebrew
61- if : runner.environment == 'github-hosted'
6254 id : set-up-homebrew
6355 uses : Homebrew/actions/setup-homebrew@master
64- - name : Build
56+ - name : Build arm64
6557 run : ./build_macos.sh
6658 - name : Uninstall arm64 Homebrew
67- if : runner.environment == 'github-hosted'
6859 run : |
6960 NONINTERACTIVE=1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
7061 rm -rf /opt/homebrew || true
7162 - name : Set up x86_64 Homebrew
72- if : runner.environment == 'github-hosted'
7363 run : |
7464 NONINTERACTIVE=1 arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
7565 - name : Install x86_64 pkg-config & cmake
76- if : runner.environment == 'github-hosted'
7766 run : |
7867 arch -x86_64 /usr/local/bin/brew install pkg-config cmake
79- - name : Build
68+ - name : Build x86_64
8069 run : arch -x86_64 ./build_macos.sh
8170 - name : Merge Universal Binaries
8271 run : ./merge_macos.sh
@@ -101,22 +90,15 @@ jobs:
10190
10291 build_linux :
10392 name : Build Linux
104- # strategy:
105- # matrix:
106- # os: [[self-hosted, linux, x64], [self-hosted, linux, arm64]]
10793 strategy :
94+ fail-fast : false
10895 matrix :
10996 os : [ubuntu-22.04, [self-hosted, linux, arm64, bookworm, 8G]]
11097 runs-on : ${{ matrix.os }}
11198
11299 steps :
113100 - name : Checkout
114101 uses : actions/checkout@v4
115- # - name: Setup SSH Auth
116- # if: runner.environment == 'github-hosted'
117- # uses: webfactory/[email protected] 118- # with:
119- # ssh-private-key: ${{ secrets.SSH_KEY }}
120102 - name : Build
121103 run : ./build_linux.sh
122104 - name : Upload Artifact
@@ -141,30 +123,33 @@ jobs:
141123 test_binaries :
142124 name : Test Binaries
143125 needs : [build_linux, build_macos, build_windows]
126+ if : always() && contains(needs.*.result, 'success')
144127 strategy :
145128 fail-fast : false
146129 matrix :
147- os : [macos-latest, macos-13, windows-latest, [self-hosted, linux, arm64, bookworm_desktop], [self-hosted, linux, arm64, trixie_desktop]]
130+ # Test all GitHub supported versions, except for windows-11-arm
131+ os : [macos-15, macos-15-intel, macos-14, windows-2025, windows-2022, windows-11-arm, ubuntu-24.04, ubuntu-22.04, ubuntu-24.04-arm, ubuntu-22.04-arm, [self-hosted, linux, arm64, trixie_desktop], [self-hosted, linux, arm64, bookworm_desktop]]
148132 runs-on : ${{ matrix.os }}
149133 steps :
150134 - name : Download build (Windows)
151- if : ${{ runner.os == 'Windows' }}
135+ if : runner.os == 'Windows'
152136 uses : actions/download-artifact@v5
153137 with :
154- name : tools-win-${{ runner.arch }}
138+ # Only built for x64, but arm should still run it fine
139+ name : tools-win-X64
155140 - name : Download build (MacOS)
156- if : ${{ runner.os == 'macOS' }}
141+ if : runner.os == 'macOS'
157142 uses : actions/download-artifact@v5
158143 with :
159144 name : tools-mac-universal
160145 - name : Download build (Linux)
161- if : ${{ runner.os == 'Linux' }}
146+ if : runner.os == 'Linux'
162147 uses : actions/download-artifact@v5
163148 with :
164149 name : tools-lin-${{ runner.arch }}
165150
166151 - name : Extract build (zip)
167- if : ${{ runner.os == 'Windows' || runner.os == 'macOS' }}
152+ if : runner.os == 'Windows' || runner.os == 'macOS'
168153 shell : bash # Windows only has unzip in bash shell
169154 run : |
170155 unzip -o pico-sdk-tools*.zip
@@ -176,7 +161,7 @@ jobs:
176161 unzip -o riscv-toolchain*.zip || true
177162 ls
178163 - name : Extract build (tar.gz)
179- if : ${{ runner.os == 'Linux' }}
164+ if : runner.os == 'Linux'
180165 run : |
181166 tar -xvf pico-sdk-tools*.tar.gz
182167 ls
@@ -187,16 +172,21 @@ jobs:
187172 tar -xvf riscv-toolchain*.tar.gz || true
188173 ls
189174
175+ - name : Clean runner (MacOS)
176+ if : runner.os == 'macOS'
177+ run : |
178+ NONINTERACTIVE=1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
179+
190180 - name : Test default stuff runs
191181 run : |
192182 ./picotool/picotool version
193183 ./pioasm/pioasm --version
194184 - name : Test openocd runs
195- if : ${{ env.SKIP_OPENOCD != 1 }}
185+ if : env.SKIP_OPENOCD != 1
196186 run : |
197187 ./openocd --version
198188 - name : Test riscv-toolchain runs
199- if : ${{ env.SKIP_RISCV != 1 }}
189+ if : env.SKIP_RISCV != 1
200190 run : |
201191 ./bin/riscv32-unknown-elf-gcc --version
202192 ./bin/riscv32-unknown-elf-gdb --version
0 commit comments