Skip to content

Commit 5fd36dd

Browse files
committed
Revert "Lower test multiplier and remove some CIs for workshop"
This reverts commit c42d63d.
1 parent 7d72965 commit 5fd36dd

File tree

3 files changed

+515
-13
lines changed

3 files changed

+515
-13
lines changed

.github/workflows/CI.yml

Lines changed: 208 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@ jobs:
1919
# ubuntu, gcc, code coverage
2020
##############################################################################
2121
ubuntu-codecoverage:
22-
name: Ubuntu GCC, Code Coverage (x2)
22+
name: Ubuntu GCC, Code Coverage (x10)
2323

2424
runs-on: ubuntu-latest
2525

2626
env:
2727
CC: "gcc"
28-
FLINT_TEST_MULTIPLIER: "2"
28+
FLINT_TEST_MULTIPLIER: "10"
2929

3030
steps:
3131
- uses: actions/checkout@v4
@@ -101,13 +101,13 @@ jobs:
101101
# ubuntu gcc with assert
102102
##############################################################################
103103
ubuntu-gcc-assert:
104-
name: Ubuntu GCC with NTL (assert, x1)
104+
name: Ubuntu GCC with NTL (assert, x2)
105105

106106
runs-on: ubuntu-latest
107107

108108
env:
109109
CC: "gcc"
110-
FLINT_TEST_MULTIPLIER: "1"
110+
FLINT_TEST_MULTIPLIER: "2"
111111

112112
steps:
113113
- uses: actions/checkout@v4
@@ -150,12 +150,63 @@ jobs:
150150
# macos (M1) with clang
151151
##############################################################################
152152
macos-m1:
153-
name: macOS-M1, Clang (x1)
153+
name: macOS-M1, Clang (x3)
154154

155155
runs-on: macos-14
156156

157157
env:
158-
FLINT_TEST_MULTIPLIER: "1"
158+
FLINT_TEST_MULTIPLIER: "3"
159+
160+
steps:
161+
- uses: actions/checkout@v4
162+
163+
- name: "Setup"
164+
run: |
165+
brew install make
166+
brew install gmp
167+
brew install mpfr
168+
brew install autoconf
169+
brew install libtool
170+
brew install automake
171+
$(brew --prefix llvm@15)/bin/clang --version
172+
gmake --version
173+
autoconf --version
174+
echo "MAKE=gmake -j$(expr $(nproc) + 1) -l 10 --output-sync=target" >> $GITHUB_ENV
175+
176+
- name: "Configure"
177+
run: |
178+
./bootstrap.sh
179+
./configure \
180+
CC=$(brew --prefix llvm@15)/bin/clang \
181+
--with-gmp=$(brew --prefix) \
182+
--with-mpfr=$(brew --prefix) \
183+
--disable-static \
184+
--disable-debug
185+
186+
- name: "Compile library"
187+
run: |
188+
$MAKE
189+
190+
- name: "Compile tests"
191+
run: |
192+
$MAKE tests
193+
194+
- name: "Check"
195+
run: |
196+
$MAKE check
197+
198+
199+
200+
##############################################################################
201+
# macos (x86) with clang and blas
202+
##############################################################################
203+
macos-x86:
204+
name: macOS-x86 Clang with BLAS (x2)
205+
206+
runs-on: macos-12
207+
208+
env:
209+
FLINT_TEST_MULTIPLIER: "2"
159210

160211
steps:
161212
- uses: actions/checkout@v4
@@ -168,6 +219,7 @@ jobs:
168219
brew install autoconf
169220
brew install libtool
170221
brew install automake
222+
brew install openblas
171223
$(brew --prefix llvm@15)/bin/clang --version
172224
gmake --version
173225
autoconf --version
@@ -180,6 +232,7 @@ jobs:
180232
CC=$(brew --prefix llvm@15)/bin/clang \
181233
--with-gmp=$(brew --prefix) \
182234
--with-mpfr=$(brew --prefix) \
235+
--with-blas=$(brew --prefix)/opt/openblas \
183236
--disable-static \
184237
--disable-debug
185238
@@ -201,15 +254,15 @@ jobs:
201254
# ubuntu with clang
202255
#############################################################################
203256
ubuntu-clang:
204-
name: Ubuntu Clang with examples (x0.5)
257+
name: Ubuntu Clang with examples (x5)
205258

206259
runs-on: ubuntu-latest
207260

208261
env:
209262
LOCAL: ${{ github.workspace }}/local
210263
LDFLAGS: "-Wl,-rpath,$LOCAL/lib"
211264
CC: "clang"
212-
FLINT_TEST_MULTIPLIER: "0.5"
265+
FLINT_TEST_MULTIPLIER: "5"
213266

214267
steps:
215268
- uses: actions/checkout@v4
@@ -255,11 +308,67 @@ jobs:
255308
256309
257310
311+
#############################################################################
312+
# mingw with gcc
313+
#############################################################################
314+
mingw64-gcc:
315+
name: MinGW GCC (x0.5)
316+
317+
runs-on: windows-latest
318+
319+
defaults:
320+
run:
321+
shell: msys2 {0}
322+
323+
env:
324+
CC: "gcc"
325+
FLINT_TEST_MULTIPLIER: "0.5"
326+
327+
steps:
328+
- uses: actions/checkout@v4
329+
330+
- name: "Setup MinGW"
331+
uses: msys2/setup-msys2@v2
332+
with:
333+
msystem: mingw64
334+
update: true
335+
install: mingw-w64-x86_64-gcc mingw-w64-x86_64-autotools
336+
337+
- name: "Setup"
338+
run: |
339+
gcc --version
340+
make --version
341+
autoconf --version
342+
libtool --version
343+
echo "MAKE=make -j$(expr $(nproc) + 1) --output-sync=target" >> $GITHUB_ENV
344+
345+
- name: "Configure"
346+
run: |
347+
./bootstrap.sh
348+
./configure \
349+
CC=${CC} \
350+
--disable-static \
351+
--disable-debug
352+
353+
- name: "Compile library"
354+
run: |
355+
${MAKE}
356+
357+
- name: "Compile tests"
358+
run: |
359+
${MAKE} tests
360+
361+
- name: "Check"
362+
run: |
363+
${MAKE} check
364+
365+
366+
258367
##############################################################################
259368
# msvc
260369
##############################################################################
261370
msvc:
262-
name: MSVC (x0.5)
371+
name: MSVC (x1)
263372

264373
runs-on: windows-latest
265374

@@ -304,22 +413,22 @@ jobs:
304413
- name: "Check"
305414
run: |
306415
cd build
307-
set "FLINT_TEST_MULTIPLIER=0.5"
308-
ctest -j5 --output-on-failure --timeout 150
416+
set "FLINT_TEST_MULTIPLIER=1"
417+
ctest -j5 --output-on-failure --timeout 450
309418
310419
311420
312421
##############################################################################
313422
# alpine linux, musl, 32-bit (assert)
314423
##############################################################################
315424
alpine-32bit:
316-
name: Alpine Linux, musl, 32-bit (assert, x1)
425+
name: Alpine Linux, musl, 32-bit (assert, x1.5)
317426

318427
runs-on: ubuntu-latest
319428

320429
env:
321430
CC: "gcc"
322-
FLINT_TEST_MULTIPLIER: "1"
431+
FLINT_TEST_MULTIPLIER: "1.5"
323432

324433
steps:
325434
- uses: actions/checkout@v4
@@ -372,3 +481,89 @@ jobs:
372481
run: |
373482
$MAKE check
374483
shell: alpine.sh {0}
484+
485+
486+
487+
##############################################################################
488+
# nemo
489+
##############################################################################
490+
nemo:
491+
name: Nemo.jl (temporary branch)
492+
493+
runs-on: ubuntu-latest
494+
495+
env:
496+
LOCAL: ${{ github.workspace }}/local
497+
CC: "gcc"
498+
499+
steps:
500+
- uses: actions/checkout@v4
501+
502+
- name: "Setup"
503+
run: |
504+
sudo apt-get install -y sed
505+
sudo apt-get install -y autoconf
506+
sudo apt-get install -y libtool-bin
507+
gcc --version
508+
make --version
509+
autoconf --version
510+
libtool --version
511+
julia --version
512+
julia -e 'println(Base.BinaryPlatforms.HostPlatform())'
513+
echo "MAKE=make -j$(expr $(nproc) + 1) --output-sync=target" >> $GITHUB_ENV
514+
515+
- name: "Configure"
516+
run: |
517+
# Find path to GMP and MPFR
518+
gmp_path=$(julia -e 'include("dev/find_gmp_mpfr.jl"); print(gmp_artifact_dir())')
519+
echo "Path to GMP: ${gmp_path}"
520+
mpfr_path=$(julia -e 'include("dev/find_gmp_mpfr.jl"); print(mpfr_artifact_dir())')
521+
echo "Path to MPFR: ${mpfr_path}"
522+
523+
# Make sure that we output an soname which corresponds to FLINT_JLL's
524+
# soname
525+
wget https://raw.githubusercontent.com/JuliaPackaging/Yggdrasil/master/F/FLINT/build_tarballs.jl
526+
FLINT_JLL_VERSION=$(grep "upstream_version =" build_tarballs.jl | sed "s/upstream_version = v\"\([0-9\.]*\)\"/\1/")
527+
FLINT_JLL_SONAME=$(grep "$FLINT_JLL_VERSION => " configure.ac | sed "s/# $FLINT_JLL_VERSION => \([0-9\.]\+\)/\1/")
528+
FLINT_JLL_MAJOR=$(echo $FLINT_JLL_SONAME | sed "s/\([0-9]\+\)\.[0-9]\+\.[0-9]\+/\1/")
529+
FLINT_JLL_MINOR=$(echo $FLINT_JLL_SONAME | sed "s/[0-9]\+\.\([0-9]\+\)\.[0-9]\+/\1/")
530+
FLINT_JLL_PATCH=$(echo $FLINT_JLL_SONAME | sed "s/[0-9]\+\.[0-9]\+\.\([0-9]\+\)/\1/")
531+
sed -i "s/^\(FLINT_MAJOR_SO=\)[0-9]\+/\1$FLINT_JLL_MAJOR/" configure.ac
532+
sed -i "s/^\(FLINT_MINOR_SO=\)[0-9]\+/\1$FLINT_JLL_MINOR/" configure.ac
533+
sed -i "s/^\(FLINT_PATCH_SO=\)[0-9]\+/\1$FLINT_JLL_PATCH/" configure.ac
534+
535+
# Now we can configure FLINT. However, recent versions of MPFR_jll has
536+
# memory sanitation which messes with finding mpfr_init in the
537+
# configure-script. Hence, we also omit the check for finding MPFR.
538+
# FIXME: Probably want to fix this.
539+
./bootstrap.sh
540+
./configure \
541+
CC=${CC} \
542+
--prefix=${LOCAL} \
543+
--with-gmp=${gmp_path} \
544+
--with-mpfr=${mpfr_path} \
545+
--disable-mpfr-check \
546+
--disable-static \
547+
--disable-debug
548+
549+
- name: "Compile and install"
550+
run: |
551+
$MAKE
552+
$MAKE install
553+
554+
- name: "Set up Nemo.jl"
555+
run: |
556+
# Override FLINT_jll's libflint with ours
557+
558+
# NOTE: Reverse me when Nemo uses FLINT v3.
559+
# git clone https://github.com/Nemocas/Nemo.jl.git
560+
git clone https://github.com/albinahlback/Nemo.jl.git && cd Nemo.jl && git checkout flint3 && cd ..
561+
562+
julia -e "import Pkg; Pkg.develop(path=\"./Nemo.jl\");"
563+
echo -e "[e134572f-a0d5-539d-bddf-3cad8db41a82]\nFLINT = \"${LOCAL}\"" > ~/.julia/artifacts/Overrides.toml
564+
touch Nemo.jl/src/Nemo.jl
565+
julia -e "using Nemo; println(\"Path to Nemo's libflint:\", Nemo.libflint)"
566+
567+
- name: "Check Nemo.jl"
568+
run: |
569+
julia -e "import Pkg; Pkg.test(\"Nemo\")"

0 commit comments

Comments
 (0)