Skip to content

Commit e99e3cd

Browse files
committed
Add Mingw build to meson-ci
1 parent 5c8d9e9 commit e99e3cd

File tree

1 file changed

+81
-10
lines changed

1 file changed

+81
-10
lines changed

.github/workflows/ci.yml

Lines changed: 81 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,18 @@ name: CI Linux
33
on:
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

1616
jobs:
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
uses: actions/[email protected]
@@ -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+
uses: astral-sh/[email protected]
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+
uses: actions/[email protected]
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

Comments
 (0)