@@ -13,19 +13,37 @@ jobs:
1313 strategy :
1414 fail-fast : false
1515 matrix :
16- os :
17- - ubuntu-latest
18- - macos-latest
19- - macos-26-intel
16+ include :
17+ - { os: ubuntu-latest, shell: bash }
18+ - { os: macos-latest, shell: bash }
19+ - { os: macos-26-intel, shell: bash }
20+ - { os: windows-latest, shell: msys2 }
21+ defaults :
22+ run :
23+ shell : ${{ matrix.shell }} {0}
2024 steps :
25+ - name : Disable CRLF conversion on Windows
26+ if : runner.os == 'Windows'
27+ shell : pwsh
28+ run : |
29+ git config --global core.autocrlf false
30+ git config --global core.eol lf
2131 - uses : actions/checkout@v6
32+ - name : Set up MSYS2
33+ if : runner.os == 'Windows'
34+ uses : msys2/setup-msys2@v2
35+ with :
36+ msystem : UCRT64
37+ update : true
2238 - name : " Install dependencies"
2339 run : |
2440 if [ "$RUNNER_OS" == "Linux" ]; then
2541 # sharutils is for uudecode
2642 sudo apt install libgmp-dev libflint-dev libmpfr-dev libntl-dev
2743 elif [ "$RUNNER_OS" == "macOS" ]; then
2844 brew install autoconf automake libtool gmp flint mpfr ntl
45+ elif [ "$RUNNER_OS" == "Windows" ]; then
46+ pacman -S --noconfirm autotools mingw-w64-ucrt-x86_64-toolchain mingw-w64-ucrt-x86_64-gmp mingw-w64-ucrt-x86_64-flint mingw-w64-ucrt-x86_64-mpfr mingw-w64-ucrt-x86_64-ntl
2947 else
3048 echo "$RUNNER_OS not supported"
3149 exit 1
3452 run : ./autogen.sh
3553 - name : configure
3654 run : |
37- if [ "$RUNNER_OS" == "Linux" ]; then
55+ if [ "$RUNNER_OS" == "Linux" ] || [ "$RUNNER_OS" == "Windows" ] ; then
3856 ./configure
3957 elif [ "$RUNNER_OS" == "macOS" ]; then
4058 ./configure LDFLAGS="-L$(brew --prefix)/lib/" \
5270 run : cat test-suite.log || true
5371 - name : make distcheck
5472 run : |
55- if [ "$RUNNER_OS" == "Linux" ]; then
73+ if [ "$RUNNER_OS" == "Linux" ] || [ "$RUNNER_OS" == "Windows" ] ; then
5674 make distcheck
5775 elif [ "$RUNNER_OS" == "macOS" ]; then
5876 make distcheck LDFLAGS="-L$(brew --prefix)/lib/" \
@@ -67,22 +85,41 @@ jobs:
6785
6886 build-fixed-seed :
6987 runs-on : ${{ matrix.os }}
70- timeout-minutes : 10
88+ timeout-minutes : 20
7189 strategy :
7290 fail-fast : false
7391 matrix :
74- os :
75- - ubuntu-latest
76- - macos-latest
92+ include :
93+ - { os: ubuntu-latest, shell: bash }
94+ - { os: macos-latest, shell: bash }
95+ - { os: macos-26-intel, shell: bash }
96+ - { os: windows-latest, shell: msys2 }
97+ defaults :
98+ run :
99+ shell : ${{ matrix.shell }} {0}
77100 steps :
101+ - name : Disable CRLF conversion on Windows
102+ if : runner.os == 'Windows'
103+ shell : pwsh
104+ run : |
105+ git config --global core.autocrlf false
106+ git config --global core.eol lf
78107 - uses : actions/checkout@v6
108+ - name : Set up MSYS2
109+ if : runner.os == 'Windows'
110+ uses : msys2/setup-msys2@v2
111+ with :
112+ msystem : UCRT64
113+ update : true
79114 - name : " Install dependencies"
80115 run : |
81116 if [ "$RUNNER_OS" == "Linux" ]; then
82117 # sharutils is for uudecode
83118 sudo apt install libgmp-dev libflint-dev libmpfr-dev libntl-dev
84119 elif [ "$RUNNER_OS" == "macOS" ]; then
85120 brew install autoconf automake libtool gmp flint mpfr ntl
121+ elif [ "$RUNNER_OS" == "Windows" ]; then
122+ pacman -S --noconfirm autotools mingw-w64-ucrt-x86_64-toolchain mingw-w64-ucrt-x86_64-gmp mingw-w64-ucrt-x86_64-flint mingw-w64-ucrt-x86_64-mpfr mingw-w64-ucrt-x86_64-ntl
86123 else
87124 echo "$RUNNER_OS not supported"
88125 exit 1
91128 run : ./autogen.sh
92129 - name : configure
93130 run : |
94- if [ "$RUNNER_OS" == "Linux" ]; then
131+ if [ "$RUNNER_OS" == "Linux" ] || [ "$RUNNER_OS" == "Windows" ] ; then
95132 ./configure
96133 elif [ "$RUNNER_OS" == "macOS" ]; then
97134 ./configure LDFLAGS="-L$(brew --prefix)/lib/" \
@@ -109,7 +146,7 @@ jobs:
109146 run : cat test-suite.log || true
110147 - name : make distcheck with fixed seed
111148 run : |
112- if [ "$RUNNER_OS" == "Linux" ]; then
149+ if [ "$RUNNER_OS" == "Linux" ] || [ "$RUNNER_OS" == "Windows" ] ; then
113150 make distcheck DISTCHECK_CONFIGURE_FLAGS="SEED=1617753600"
114151 elif [ "$RUNNER_OS" == "macOS" ]; then
115152 make distcheck LDFLAGS="-L$(brew --prefix)/lib/" \
0 commit comments