Skip to content

Commit 5233e2c

Browse files
ViralBShahclaude
andauthored
ci: speed up Windows jobs by trimming the msys2 install (#354)
* ci: trim Windows msys2 install to speed up setup The msys2 package cache is already enabled by default and hits, but the slow part of the Windows jobs is pacman *extracting* the installed packages, which the cache does not avoid: on the windows-11-arm runner the install step alone took ~3.5 min installing base-devel and the full toolchain meta-package. Install only what openlibm builds with — make plus a C compiler. The -gcc packages pull in binutils and the runtime, so mingw64/mingw32/ucrt64 drop base-devel and the toolchain meta entirely. The clang environments keep their toolchain meta (no standalone binutils package provides ar), but still drop base-devel. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * ci: trim clang Windows install to the clang package too mingw-w64-clang-*-clang requires lld and llvm-tools (which provides ar), so it is a complete toolchain by itself. Drop the clang -toolchain meta (lldb/openmp/flang/... are unused) to cut the slow windows-11-arm setup. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent aeef4da commit 5233e2c

1 file changed

Lines changed: 15 additions & 6 deletions

File tree

.github/workflows/ci.yml

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,21 @@ jobs:
3434
strategy:
3535
fail-fast: false
3636
matrix:
37+
# Install only what the build needs instead of `base-devel` plus the
38+
# full `*-toolchain` meta-package. The msys2 package cache is already on
39+
# by default and hits, but pacman still *extracts* every package on each
40+
# run, and base-devel + the toolchain meta dominated setup time (it was
41+
# ~3.5 min of pacman install on the arm runner). openlibm only needs make
42+
# and a C compiler. The -gcc package pulls in binutils and the runtime;
43+
# the -clang package requires lld and llvm-tools (which provides ar), so
44+
# it is a complete toolchain on its own without the meta-package's unused
45+
# extras (lldb, openmp, flang, ...).
3746
include:
38-
- { os: windows-latest, sys: mingw64, env: x86_64 }
39-
- { os: windows-latest, sys: mingw32, env: i686 }
40-
- { os: windows-latest, sys: ucrt64, env: ucrt-x86_64 } # Experimental!
41-
- { os: windows-latest, sys: clang64, env: clang-x86_64 } # Experimental!
42-
- { os: windows-11-arm, sys: clangarm64, env: clang-aarch64 } # Experimental!
47+
- { os: windows-latest, sys: mingw64, install: "make mingw-w64-x86_64-gcc" }
48+
- { os: windows-latest, sys: mingw32, install: "make mingw-w64-i686-gcc" }
49+
- { os: windows-latest, sys: ucrt64, install: "make mingw-w64-ucrt-x86_64-gcc" } # Experimental!
50+
- { os: windows-latest, sys: clang64, install: "make mingw-w64-clang-x86_64-clang" } # Experimental!
51+
- { os: windows-11-arm, sys: clangarm64, install: "make mingw-w64-clang-aarch64-clang" } # Experimental!
4352
defaults:
4453
run:
4554
shell: msys2 {0}
@@ -49,7 +58,7 @@ jobs:
4958
uses: msys2/setup-msys2@v2
5059
with:
5160
msystem: ${{matrix.sys}}
52-
install: base-devel mingw-w64-${{matrix.env}}-toolchain
61+
install: ${{matrix.install}}
5362
- run: make -j$(nproc)
5463
- run: make test
5564
strict-warnings:

0 commit comments

Comments
 (0)