Skip to content

Commit d36b628

Browse files
committed
WIP: Test by adding new wrappers on an existing release
1 parent ddf947e commit d36b628

File tree

1 file changed

+45
-64
lines changed

1 file changed

+45
-64
lines changed

.github/workflows/build.yml

Lines changed: 45 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -77,10 +77,12 @@ jobs:
7777
SOURCE_DATE_EPOCH: ${{needs.prepare.outputs.COMMIT_DATE_UNIX}}
7878
BUILD_DATE: ${{needs.prepare.outputs.BUILD_DATE}}
7979
run: |
80-
# Skip dynamic library dependencies that might make it harder to
81-
# run the binaries on other distros (and that have little use within
82-
# llvm-mingw).
83-
LLVM_CMAKEFLAGS="-DLLVM_ENABLE_LIBXML2=OFF -DLLDB_ENABLE_PYTHON=OFF" ./build-all.sh $(pwd)/install/llvm-mingw --stage1
80+
curl -LO https://github.com/mstorsjo/llvm-mingw/releases/download/20250717/llvm-mingw-20250717-ucrt-ubuntu-22.04-x86_64.tar.xz
81+
tar -Jxf llvm-mingw-*.tar.xz
82+
rm llvm-mingw-*.tar.xz
83+
mkdir install
84+
mv llvm-mingw* install/llvm-mingw
85+
./install-wrappers.sh $(pwd)/install/llvm-mingw
8486
.github/workflows/store-version.sh install/llvm-mingw/versions.txt
8587
./test-libcxx-module.sh $(pwd)/install/llvm-mingw
8688
./run-tests.sh $(pwd)/install/llvm-mingw
@@ -98,6 +100,7 @@ jobs:
98100
retention-days: 7
99101

100102
linux-profile:
103+
if: false
101104
needs: [prepare, linux-stage1]
102105
runs-on: ubuntu-22.04
103106
steps:
@@ -129,32 +132,23 @@ jobs:
129132

130133
# Build a cross compiler for Linux, targeting Windows.
131134
linux:
132-
needs: [prepare, linux-stage1, linux-profile]
135+
needs: [prepare, linux-stage1]
133136
runs-on: ubuntu-22.04
134137
steps:
135138
- uses: actions/checkout@v4
136-
- uses: actions/download-artifact@v4
137-
with:
138-
name: linux-stage1-ucrt-x86_64-toolchain
139-
- name: Unpack stage1 Clang
140-
run: |
141-
tar -Jxf llvm-mingw-*.tar.xz
142-
rm llvm-mingw-*.tar.xz
143-
sudo mv llvm-mingw* /opt/llvm-mingw
144-
- uses: actions/download-artifact@v4
145-
with:
146-
name: profile
147139
- name: Build
148140
env:
149141
LLVM_VERSION: ${{needs.prepare.outputs.LLVM_VERSION}}
150142
TAG: ${{needs.prepare.outputs.TAG}}
151143
SOURCE_DATE_EPOCH: ${{needs.prepare.outputs.COMMIT_DATE_UNIX}}
152144
BUILD_DATE: ${{needs.prepare.outputs.BUILD_DATE}}
153145
run: |
154-
# Skip dynamic library dependencies that might make it harder to
155-
# run the binaries on other distros (and that have little use within
156-
# llvm-mingw).
157-
LLVM_CMAKEFLAGS="-DLLVM_ENABLE_LIBXML2=OFF -DLLDB_ENABLE_PYTHON=OFF" ./build-all.sh /opt/llvm-mingw $(pwd)/install/llvm-mingw --thinlto --pgo --llvm-only
146+
curl -LO https://github.com/mstorsjo/llvm-mingw/releases/download/20250717/llvm-mingw-20250717-ucrt-ubuntu-22.04-x86_64.tar.xz
147+
tar -Jxf llvm-mingw-*.tar.xz
148+
rm llvm-mingw-*.tar.xz
149+
mkdir install
150+
mv llvm-mingw* install/llvm-mingw
151+
./install-wrappers.sh $(pwd)/install/llvm-mingw
158152
.github/workflows/store-version.sh install/llvm-mingw/versions.txt
159153
./test-libcxx-module.sh $(pwd)/install/llvm-mingw
160154
./run-tests.sh $(pwd)/install/llvm-mingw
@@ -174,36 +168,29 @@ jobs:
174168
# Crosscompile the toolchain for running on Linux on a different architecture, bundle the runtime
175169
# libraries that were built in the 'linux-stage1' step above.
176170
linux-cross-aarch64:
177-
needs: [linux-stage1, linux-profile, prepare]
171+
needs: [linux-stage1, prepare]
178172
runs-on: ubuntu-22.04
179173
steps:
180174
- uses: actions/checkout@v4
181-
- uses: actions/download-artifact@v4
182-
with:
183-
name: linux-stage1-ucrt-x86_64-toolchain
184-
- name: Unpack stage1 Clang
185-
run: |
186-
tar -Jxf llvm-mingw-*.tar.xz
187-
rm llvm-mingw-*.tar.xz
188-
sudo mv llvm-mingw* /opt/llvm-mingw
189-
- uses: actions/download-artifact@v4
190-
with:
191-
name: profile
192175
- name: Build
193176
env:
194177
LLVM_VERSION: ${{needs.prepare.outputs.LLVM_VERSION}}
195178
MINGW_W64_VERSION: ${{needs.prepare.outputs.MINGW_W64_VERSION}}
196179
SOURCE_DATE_EPOCH: ${{needs.prepare.outputs.COMMIT_DATE_UNIX}}
197180
run: |
198181
sudo apt-get update && sudo apt-get install g++-aarch64-linux-gnu
199-
./build-all.sh /opt/llvm-mingw $(pwd)/install/llvm-mingw --no-runtimes --host=aarch64-linux-gnu --thinlto --pgo
182+
curl -LO https://github.com/mstorsjo/llvm-mingw/releases/download/20250717/llvm-mingw-20250717-ucrt-ubuntu-22.04-aarch64.tar.xz
183+
tar -Jxf llvm-mingw-*.tar.xz
184+
rm llvm-mingw-*.tar.xz
185+
mkdir install
186+
mv llvm-mingw* install/llvm-mingw
187+
./install-wrappers.sh $(pwd)/install/llvm-mingw --host=aarch64-linux-gnu
200188
.github/workflows/store-version.sh install/llvm-mingw/versions.txt
201-
- name: Assemble the cross-built toolchain
202-
run: |
203-
./prepare-cross-toolchain-unix.sh /opt/llvm-mingw $(pwd)/install/llvm-mingw
204189
- name: Test using the cross-built assembled toolchain
205190
run: |
206191
sudo apt-get update && sudo apt-get install qemu-user-static libc6-arm64-cross libstdc++6-arm64-cross
192+
# Speed up this step by testing fewer architectures
193+
export ARCHS="x86_64 aarch64"
207194
QEMU_LD_PREFIX=/usr/aarch64-linux-gnu ./test-libcxx-module.sh $(pwd)/install/llvm-mingw
208195
QEMU_LD_PREFIX=/usr/aarch64-linux-gnu ./run-tests.sh $(pwd)/install/llvm-mingw
209196
QEMU_LD_PREFIX=/usr/aarch64-linux-gnu ./run-cmake-tests.sh $(pwd)/install/llvm-mingw
@@ -232,7 +219,7 @@ jobs:
232219
# to better catch such bugs early. This makes the first-stage toolchain built
233220
# here in scheduled builds somewhat slower.
234221
linux-asserts:
235-
if: github.event_name == 'schedule'
222+
if: false
236223
needs: [prepare]
237224
runs-on: ubuntu-latest
238225
steps:
@@ -261,6 +248,7 @@ jobs:
261248
retention-days: 7
262249

263250
macos-stage1:
251+
if: false
264252
needs: [prepare]
265253
runs-on: macos-latest
266254
steps:
@@ -290,21 +278,10 @@ jobs:
290278

291279
# Build a cross compiler for macOS, targeting Windows.
292280
macos:
293-
needs: [prepare, macos-stage1, linux-profile]
281+
needs: [prepare]
294282
runs-on: macos-latest
295283
steps:
296284
- uses: actions/checkout@v4
297-
- uses: actions/download-artifact@v4
298-
with:
299-
name: macos-llvm
300-
- name: Unpack stage1 Clang
301-
run: |
302-
tar -Jxf llvm-*.tar.xz
303-
rm llvm-*.tar.xz
304-
mv llvm* $HOME/llvm
305-
- uses: actions/download-artifact@v4
306-
with:
307-
name: profile
308285
- name: Build
309286
env:
310287
LLVM_VERSION: ${{needs.prepare.outputs.LLVM_VERSION}}
@@ -313,12 +290,12 @@ jobs:
313290
SOURCE_DATE_EPOCH: ${{needs.prepare.outputs.COMMIT_DATE_UNIX}}
314291
BUILD_DATE: ${{needs.prepare.outputs.BUILD_DATE}}
315292
run: |
316-
# Disable zstd and python. Both are available on the runners, but
317-
# installed with homebrew, and only available in the native (arm64)
318-
# form. Therefore, autodetection will pick them up, but linking
319-
# universal binaries fails as those libraries are unavailable in the
320-
# other (x86_64) architecture form.
321-
MACOS_REDIST=1 LLVM_CMAKEFLAGS="-DLLVM_ENABLE_ZSTD=OFF -DLLDB_ENABLE_PYTHON=OFF" ./build-all.sh $HOME/llvm $(pwd)/install/llvm-mingw --thinlto --pgo
293+
curl -LO https://github.com/mstorsjo/llvm-mingw/releases/download/20250717/llvm-mingw-20250717-ucrt-macos-universal.tar.xz
294+
tar -Jxf llvm-mingw-*.tar.xz
295+
rm llvm-mingw-*.tar.xz
296+
mkdir install
297+
mv llvm-mingw* install/llvm-mingw
298+
./install-wrappers.sh $(pwd)/install/llvm-mingw
322299
.github/workflows/store-version.sh install/llvm-mingw/versions.txt
323300
./test-libcxx-module.sh $(pwd)/install/llvm-mingw
324301
./run-tests.sh $(pwd)/install/llvm-mingw
@@ -371,10 +348,12 @@ jobs:
371348
SOURCE_DATE_EPOCH: ${{needs.prepare.outputs.COMMIT_DATE_UNIX}}
372349
BUILD_DATE: ${{needs.prepare.outputs.BUILD_DATE}}
373350
run: |
374-
if [ "${{matrix.sys}}" = "mingw64" ]; then
375-
ARGS="--disable-dylib"
376-
fi
377-
./build-all.sh $(pwd)/install/llvm-mingw --disable-clang-tools-extra --disable-lldb $ARGS
351+
curl -LO https://martin.st/temp/llvm-mingw-nightly-ucrt-msys2-${{matrix.sys}}.tar.xz
352+
tar -Jxf llvm-mingw-*.tar.xz
353+
rm llvm-mingw-*.tar.xz
354+
mkdir install
355+
mv llvm-mingw* install/llvm-mingw
356+
./install-wrappers.sh $(pwd)/install/llvm-mingw
378357
.github/workflows/store-version.sh install/llvm-mingw/versions.txt
379358
./copy-msys-dependencies.sh $(pwd)/install/llvm-mingw ${{matrix.sys}}
380359
./test-libcxx-module.sh $(pwd)/install/llvm-mingw
@@ -395,7 +374,7 @@ jobs:
395374
# llvm and make a proper standalone toolchain for Windows (for all 4
396375
# architectures). The binaries built here match actual releases quite closely.
397376
linux-cross-windows:
398-
needs: [linux-stage1, linux-profile, prepare]
377+
needs: [linux-stage1, prepare]
399378
runs-on: ubuntu-latest
400379
strategy:
401380
fail-fast: false
@@ -416,9 +395,6 @@ jobs:
416395
sudo mv llvm-mingw* /opt/llvm-mingw
417396
echo /opt/llvm-mingw/bin >> $GITHUB_PATH
418397
- uses: actions/checkout@v4
419-
- uses: actions/download-artifact@v4
420-
with:
421-
name: profile
422398
- name: Build
423399
env:
424400
LLVM_VERSION: ${{needs.prepare.outputs.LLVM_VERSION}}
@@ -429,7 +405,12 @@ jobs:
429405
BUILD_DATE: ${{needs.prepare.outputs.BUILD_DATE}}
430406
run: |
431407
sudo apt-get update && sudo apt-get install libltdl-dev swig autoconf-archive
432-
./build-cross-tools.sh /opt/llvm-mingw $(pwd)/install/llvm-mingw ${{matrix.arch}} --with-python --thinlto --pgo
408+
curl -LO https://github.com/mstorsjo/llvm-mingw/releases/download/20250717/llvm-mingw-20250717-ucrt-${{matrix.arch}}.zip
409+
unzip -q llvm-mingw-*.zip
410+
rm llvm-mingw-*.zip
411+
mkdir install
412+
mv llvm-mingw-* install/llvm-mingw
413+
./install-wrappers.sh $(pwd)/install/llvm-mingw --host=${{matrix.arch}}-w64-mingw32
433414
.github/workflows/store-version.sh install/llvm-mingw/versions.txt
434415
cd install
435416
NAME=llvm-mingw-$TAG-${{matrix.crt}}-${{matrix.arch}}

0 commit comments

Comments
 (0)