@@ -3,18 +3,18 @@ name: CI Linux
33on :
44 push :
55 tags :
6- - ' * '
6+ - " * "
77 pull_request :
88 paths :
9- - ' **.build'
10- - ' uv.lock'
11- - ' subprojects/**'
12- - ' .github/workflows/ci.yml'
9+ - " **.build"
10+ - " uv.lock"
11+ - " subprojects/**"
12+ - " .github/workflows/ci.yml"
1313 workflow_dispatch :
1414 # Allow to run manually
1515
1616jobs :
17- build :
17+ linux :
1818 name : Build and Test
1919 runs-on : ubuntu-latest
2020 strategy :
@@ -107,10 +107,10 @@ jobs:
107107 id : clear-container-name
108108 if : failure() || success()
109109 run : |
110- # Output the container name, but with ":" and "/" replaced by "-"
111- # This is needed to avoid issues with the upload-artifact action
112- CONTAINER_NAME=$(echo "${{ matrix.container }}" | tr ':/' '--')
113- echo "CONTAINER_NAME=$CONTAINER_NAME" >> $GITHUB_OUTPUT
110+ # Output the container name, but with ":" and "/" replaced by "-"
111+ # This is needed to avoid issues with the upload-artifact action
112+ CONTAINER_NAME=$(echo "${{ matrix.container }}" | tr ':/' '--')
113+ echo "CONTAINER_NAME=$CONTAINER_NAME" >> $GITHUB_OUTPUT
114114
115115 - name : Upload log
116116@@ -120,3 +120,74 @@ jobs:
120120 path : |
121121 build/cp313/meson-logs/
122122 build/cp313/meson-info/
123+
124+ mingw :
125+ name : Build and Test (Mingw)
126+ runs-on : windows-latest
127+ steps :
128+ - name : Checkout code
129+ uses : actions/checkout@v4
130+
131+ - name : Install uv
132+ 133+
134+ - name : Set up Python
135+ run : |
136+ uv python install
137+ uv venv
138+ source .venv/Scripts/activate
139+ echo PATH=$PATH >> $GITHUB_ENV
140+
141+ - name : Install dependencies
142+ uses : msys2/setup-msys2@v2
143+ with :
144+ msystem : UCRT64
145+ update : true
146+ install : >-
147+ base-devel
148+ mingw-w64-ucrt-x86_64-toolchain
149+ mingw-w64-ucrt-x86_64-ninja
150+ mingw-w64-ucrt-x86_64-gmp
151+ mingw-w64-ucrt-x86_64-openblas
152+ mingw-w64-ucrt-x86_64-m4ri
153+ mingw-w64-ucrt-x86_64-flint
154+ mingw-w64-ucrt-x86_64-mpfi
155+ mingw-w64-ucrt-x86_64-gsl
156+ mingw-w64-ucrt-x86_64-libgd
157+ mingw-w64-ucrt-x86_64-gsl
158+ mingw-w64-ucrt-x86_64-libgd
159+ mingw-w64-ucrt-x86_64-ntl
160+ mingw-w64-ucrt-x86_64-boost
161+ mingw-w64-ucrt-x86_64-nauty
162+ mingw-w64-ucrt-x86_64-libhomfly
163+ mingw-w64-ucrt-x86_64-symmetrica
164+ mingw-w64-ucrt-x86_64-glpk
165+ mingw-w64-ucrt-x86_64-gc
166+ path-type : inherit
167+
168+ - name : Build
169+ run : |
170+ # Install build dependencies manually as workaround for https://github.com/astral-sh/uv/issues/1516
171+ uv pip install \
172+ meson-python \
173+ "cysignals >=1.11.2, != 1.12.0" \
174+ "cython >=3.0, != 3.0.3, < 3.1.0" \
175+ "gmpy2 >=2.1.5" \
176+ memory_allocator \
177+ "numpy >=1.25" \
178+ jinja2 \
179+ setuptools
180+ uv sync --frozen --inexact --no-build-isolation -v --no-editable --config-settings=builddir=builddir
181+
182+ - name : Test
183+ run : |
184+ uv run --frozen ./sage -t --all -p4 || true
185+
186+ - name : Upload log
187+ 188+ if : failure() || success()
189+ with :
190+ name : mingw-log
191+ path : |
192+ build/cp313/meson-logs/
193+ build/cp313/meson-info/
0 commit comments