12
12
jobs :
13
13
build_windows :
14
14
name : Build Windows
15
- # runs-on: [self-hosted, Windows, x64]
16
15
runs-on : ' windows-latest'
17
16
18
17
steps :
19
18
- name : Checkout
20
19
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 }}
26
20
- name : Setup MSYS2
27
21
uses : msys2/setup-msys2@v2
28
22
- name : Build
@@ -51,32 +45,27 @@ jobs:
51
45
52
46
build_macos :
53
47
name : Build MacOS
54
- # runs-on: [self-hosted, macOS]
55
48
runs-on : ' macos-14'
56
49
57
50
steps :
58
51
- name : Checkout
59
52
uses : actions/checkout@v4
60
53
- name : Set up arm64 Homebrew
61
- if : runner.environment == 'github-hosted'
62
54
id : set-up-homebrew
63
55
uses : Homebrew/actions/setup-homebrew@master
64
- - name : Build
56
+ - name : Build arm64
65
57
run : ./build_macos.sh
66
58
- name : Uninstall arm64 Homebrew
67
- if : runner.environment == 'github-hosted'
68
59
run : |
69
60
NONINTERACTIVE=1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
70
61
rm -rf /opt/homebrew || true
71
62
- name : Set up x86_64 Homebrew
72
- if : runner.environment == 'github-hosted'
73
63
run : |
74
64
NONINTERACTIVE=1 arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
75
65
- name : Install x86_64 pkg-config & cmake
76
- if : runner.environment == 'github-hosted'
77
66
run : |
78
67
arch -x86_64 /usr/local/bin/brew install pkg-config cmake
79
- - name : Build
68
+ - name : Build x86_64
80
69
run : arch -x86_64 ./build_macos.sh
81
70
- name : Merge Universal Binaries
82
71
run : ./merge_macos.sh
@@ -101,22 +90,15 @@ jobs:
101
90
102
91
build_linux :
103
92
name : Build Linux
104
- # strategy:
105
- # matrix:
106
- # os: [[self-hosted, linux, x64], [self-hosted, linux, arm64]]
107
93
strategy :
94
+ fail-fast : false
108
95
matrix :
109
96
os : [ubuntu-22.04, [self-hosted, linux, arm64, bookworm, 8G]]
110
97
runs-on : ${{ matrix.os }}
111
98
112
99
steps :
113
100
- name : Checkout
114
101
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 }}
120
102
- name : Build
121
103
run : ./build_linux.sh
122
104
- name : Upload Artifact
@@ -141,30 +123,33 @@ jobs:
141
123
test_binaries :
142
124
name : Test Binaries
143
125
needs : [build_linux, build_macos, build_windows]
126
+ if : always() && contains(needs.*.result, 'success')
144
127
strategy :
145
128
fail-fast : false
146
129
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]]
148
132
runs-on : ${{ matrix.os }}
149
133
steps :
150
134
- name : Download build (Windows)
151
- if : ${{ runner.os == 'Windows' }}
135
+ if : runner.os == 'Windows'
152
136
uses : actions/download-artifact@v5
153
137
with :
154
- name : tools-win-${{ runner.arch }}
138
+ # Only built for x64, but arm should still run it fine
139
+ name : tools-win-X64
155
140
- name : Download build (MacOS)
156
- if : ${{ runner.os == 'macOS' }}
141
+ if : runner.os == 'macOS'
157
142
uses : actions/download-artifact@v5
158
143
with :
159
144
name : tools-mac-universal
160
145
- name : Download build (Linux)
161
- if : ${{ runner.os == 'Linux' }}
146
+ if : runner.os == 'Linux'
162
147
uses : actions/download-artifact@v5
163
148
with :
164
149
name : tools-lin-${{ runner.arch }}
165
150
166
151
- name : Extract build (zip)
167
- if : ${{ runner.os == 'Windows' || runner.os == 'macOS' }}
152
+ if : runner.os == 'Windows' || runner.os == 'macOS'
168
153
shell : bash # Windows only has unzip in bash shell
169
154
run : |
170
155
unzip -o pico-sdk-tools*.zip
@@ -176,7 +161,7 @@ jobs:
176
161
unzip -o riscv-toolchain*.zip || true
177
162
ls
178
163
- name : Extract build (tar.gz)
179
- if : ${{ runner.os == 'Linux' }}
164
+ if : runner.os == 'Linux'
180
165
run : |
181
166
tar -xvf pico-sdk-tools*.tar.gz
182
167
ls
@@ -187,16 +172,21 @@ jobs:
187
172
tar -xvf riscv-toolchain*.tar.gz || true
188
173
ls
189
174
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
+
190
180
- name : Test default stuff runs
191
181
run : |
192
182
./picotool/picotool version
193
183
./pioasm/pioasm --version
194
184
- name : Test openocd runs
195
- if : ${{ env.SKIP_OPENOCD != 1 }}
185
+ if : env.SKIP_OPENOCD != 1
196
186
run : |
197
187
./openocd --version
198
188
- name : Test riscv-toolchain runs
199
- if : ${{ env.SKIP_RISCV != 1 }}
189
+ if : env.SKIP_RISCV != 1
200
190
run : |
201
191
./bin/riscv32-unknown-elf-gcc --version
202
192
./bin/riscv32-unknown-elf-gdb --version
0 commit comments