Skip to content

Commit 6b3af82

Browse files
ViralBShahclaude
andcommitted
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>
1 parent aeef4da commit 6b3af82

1 file changed

Lines changed: 14 additions & 6 deletions

File tree

.github/workflows/ci.yml

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,20 @@ 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 dominate 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/runtime, while the
43+
# clang environments have no standalone binutils package so they keep the
44+
# toolchain meta (for ar/lld).
3745
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!
46+
- { os: windows-latest, sys: mingw64, install: "make mingw-w64-x86_64-gcc" }
47+
- { os: windows-latest, sys: mingw32, install: "make mingw-w64-i686-gcc" }
48+
- { os: windows-latest, sys: ucrt64, install: "make mingw-w64-ucrt-x86_64-gcc" } # Experimental!
49+
- { os: windows-latest, sys: clang64, install: "make mingw-w64-clang-x86_64-toolchain" } # Experimental!
50+
- { os: windows-11-arm, sys: clangarm64, install: "make mingw-w64-clang-aarch64-toolchain" } # Experimental!
4351
defaults:
4452
run:
4553
shell: msys2 {0}
@@ -49,7 +57,7 @@ jobs:
4957
uses: msys2/setup-msys2@v2
5058
with:
5159
msystem: ${{matrix.sys}}
52-
install: base-devel mingw-w64-${{matrix.env}}-toolchain
60+
install: ${{matrix.install}}
5361
- run: make -j$(nproc)
5462
- run: make test
5563
strict-warnings:

0 commit comments

Comments
 (0)