From 041c88c312f6d796b3540dd97e77187c9470ee16 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Thu, 15 May 2025 17:01:32 -0700 Subject: [PATCH 1/4] .github/workflows/ci-passagemath-macaulay2.yml: New --- .../workflows/ci-passagemath-macaulay2.yml | 103 ++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 .github/workflows/ci-passagemath-macaulay2.yml diff --git a/.github/workflows/ci-passagemath-macaulay2.yml b/.github/workflows/ci-passagemath-macaulay2.yml new file mode 100644 index 00000000000..f90e002362b --- /dev/null +++ b/.github/workflows/ci-passagemath-macaulay2.yml @@ -0,0 +1,103 @@ +name: Test integration with passagemath-macaulay2 +## +## This GitHub Actions workflow uses the portability testing framework +## of passagemath (https://github.com/passagemath). +## +## - Documentation: https://doc.sagemath.org/html/en/developer/portability_testing.html +## +## - Deployment of ci-sage.yml in upstream projects is tracked at +## https://github.com/passagemath/passagemath/issues/704 +## +## - Contact: @passagemath/ci team on GitHub +## +## This GitHub Actions workflow provides: +## +## - continuous integration, by building and testing other software +## that depends on this project. +## +## It runs on every push of a tag to the GitHub repository +## and can also be invoked manually ("workflow_dispatch"). +## +## The testing can be monitored in the "Actions" tab of the GitHub repository. +## +## After all jobs have finished (or are canceled) and a short delay, +## tar files of all logs are made available as "build artifacts". +## +## The workflow consists of two jobs: +## +## - First, it builds a source distribution of the project +## and generates a script "update-pkgs.sh". It uploads them +## as a build artifact named upstream. +## +## - Second, it checks out a copy of the SageMath source tree. +## It downloads the upstream artifact and replaces the project's +## package in the SageMath distribution by the newly packaged one +## from the upstream artifact, by running the script "update-pkgs.sh". +## Then it builds a small portion of the Sage distribution. +## +## Many copies of the second step are run in parallel for each of the tested +## systems/configurations. + +on: + push: + tags: + - '*' + workflow_dispatch: + # Allow to run manually + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +env: + # Ubuntu packages to install so that the project's "make dist" can succeed + DIST_PREREQ: git + # Name of this project in the Sage distribution + SPKG: macaulay2 + REMOVE_PATCHES: "*" + +jobs: + + dist: + runs-on: ubuntu-latest + steps: + - name: Check out ${{ env.SPKG }} + uses: actions/checkout@v4 + with: + path: build/pkgs/${{ env.SPKG }}/src + - name: Install prerequisites + run: | + sudo DEBIAN_FRONTEND=noninteractive apt-get update + sudo DEBIAN_FRONTEND=noninteractive apt-get install $DIST_PREREQ + + - name: Run make dist, prepare upstream artifact + run: | + (cd build/pkgs/${{ env.SPKG }}/src && git archive --format=tar.gz --prefix=${{ env.SPKG }}-git/ HEAD > ${{ env.SPKG }}-git.tar.gz) \ + && mkdir -p upstream && cp build/pkgs/${{ env.SPKG }}/src/*.tar.gz upstream/${{ env.SPKG }}-git.tar.gz \ + && echo "sage-package create ${{ env.SPKG }} --version git --tarball ${{ env.SPKG }}-git.tar.gz --type=optional" > upstream/update-pkgs.sh \ + && if [ -n "${{ env.REMOVE_PATCHES }}" ]; then echo "(cd ../build/pkgs/${{ env.SPKG }}/patches && rm -f ${{ env.REMOVE_PATCHES }}; :)" >> upstream/update-pkgs.sh; fi \ + && ls -l upstream/ + - uses: actions/upload-artifact@v4 + with: + path: upstream + name: upstream + + passagemath-macaulay2: + uses: passagemath/passagemath/.github/workflows/docker.yml@main + with: + extra_sage_packages: gdbm git libxml2 gfortran cmake python3 openblas zlib readline sqlite libpng bzip2 liblzma libffi openssl 4ti2 fflas_ffpack boost_cropped cddlib givaro glpk gmp mpc mpfi mpfr ncurses ntl readline singular lrslib normaliz topcom gfan frobby nauty libnauty flint onetbb googletest mpsolve msolve eigen gc ninja_build curl + targets: SAGE_CHECK=no SAGE_CHECK_PACKAGES="sagemath_macaulay2" sagemath_macaulay2 + # Standard setting: Test the current HEAD of passagemath: + sage_repo: passagemath/passagemath + sage_ref: main + upstream_artifact: upstream + # Build incrementally from published Docker image + free_disk_space: true + docker_targets: "with-targets" + tox_system_factors: >- + ["ubuntu-noble-macaulay2_daily"] + tox_packages_factors: >- + ["minimal"] + # avoid clash with linux job for the same platform + logs_artifact: false + needs: [dist] From a99d74add8e0c441b0283d8c6e5f8d5c59461d29 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Thu, 15 May 2025 18:41:57 -0700 Subject: [PATCH 2/4] .github/workflows/ci-passagemath-macaulay2.yml: Remove singular from system packages --- .github/workflows/ci-passagemath-macaulay2.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci-passagemath-macaulay2.yml b/.github/workflows/ci-passagemath-macaulay2.yml index f90e002362b..399525a0342 100644 --- a/.github/workflows/ci-passagemath-macaulay2.yml +++ b/.github/workflows/ci-passagemath-macaulay2.yml @@ -85,7 +85,8 @@ jobs: passagemath-macaulay2: uses: passagemath/passagemath/.github/workflows/docker.yml@main with: - extra_sage_packages: gdbm git libxml2 gfortran cmake python3 openblas zlib readline sqlite libpng bzip2 liblzma libffi openssl 4ti2 fflas_ffpack boost_cropped cddlib givaro glpk gmp mpc mpfi mpfr ncurses ntl readline singular lrslib normaliz topcom gfan frobby nauty libnauty flint onetbb googletest mpsolve msolve eigen gc ninja_build curl + # singular is not suitable, omit + extra_sage_packages: gdbm git libxml2 gfortran cmake python3 openblas zlib readline sqlite libpng bzip2 liblzma libffi openssl 4ti2 fflas_ffpack boost_cropped cddlib givaro glpk gmp mpc mpfi mpfr ncurses ntl readline lrslib normaliz topcom gfan frobby nauty libnauty flint onetbb googletest mpsolve msolve eigen gc ninja_build curl gsl libatomic_ops targets: SAGE_CHECK=no SAGE_CHECK_PACKAGES="sagemath_macaulay2" sagemath_macaulay2 # Standard setting: Test the current HEAD of passagemath: sage_repo: passagemath/passagemath From b7835de735b4f224272a59fd9e961fd57a7897dc Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Thu, 15 May 2025 19:26:44 -0700 Subject: [PATCH 3/4] .github/workflows/ci-passagemath-macaulay2.yml: Add tox --- .github/workflows/ci-passagemath-macaulay2.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-passagemath-macaulay2.yml b/.github/workflows/ci-passagemath-macaulay2.yml index 399525a0342..4ac28183c80 100644 --- a/.github/workflows/ci-passagemath-macaulay2.yml +++ b/.github/workflows/ci-passagemath-macaulay2.yml @@ -86,7 +86,7 @@ jobs: uses: passagemath/passagemath/.github/workflows/docker.yml@main with: # singular is not suitable, omit - extra_sage_packages: gdbm git libxml2 gfortran cmake python3 openblas zlib readline sqlite libpng bzip2 liblzma libffi openssl 4ti2 fflas_ffpack boost_cropped cddlib givaro glpk gmp mpc mpfi mpfr ncurses ntl readline lrslib normaliz topcom gfan frobby nauty libnauty flint onetbb googletest mpsolve msolve eigen gc ninja_build curl gsl libatomic_ops + extra_sage_packages: gdbm git libxml2 gfortran cmake python3 openblas zlib readline sqlite libpng bzip2 liblzma libffi openssl 4ti2 fflas_ffpack boost_cropped cddlib givaro glpk gmp mpc mpfi mpfr ncurses ntl readline lrslib normaliz topcom gfan frobby nauty libnauty flint onetbb googletest mpsolve msolve eigen gc ninja_build curl gsl libatomic_ops tox targets: SAGE_CHECK=no SAGE_CHECK_PACKAGES="sagemath_macaulay2" sagemath_macaulay2 # Standard setting: Test the current HEAD of passagemath: sage_repo: passagemath/passagemath From c82dc41cccbe3591e0eb04a5f9a91c02d7143ac7 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Thu, 15 May 2025 21:40:33 -0700 Subject: [PATCH 4/4] .github/workflows/ci-passagemath-macaulay2.yml: Add more system packages --- .github/workflows/ci-passagemath-macaulay2.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-passagemath-macaulay2.yml b/.github/workflows/ci-passagemath-macaulay2.yml index 4ac28183c80..ac6d55a7b27 100644 --- a/.github/workflows/ci-passagemath-macaulay2.yml +++ b/.github/workflows/ci-passagemath-macaulay2.yml @@ -86,7 +86,7 @@ jobs: uses: passagemath/passagemath/.github/workflows/docker.yml@main with: # singular is not suitable, omit - extra_sage_packages: gdbm git libxml2 gfortran cmake python3 openblas zlib readline sqlite libpng bzip2 liblzma libffi openssl 4ti2 fflas_ffpack boost_cropped cddlib givaro glpk gmp mpc mpfi mpfr ncurses ntl readline lrslib normaliz topcom gfan frobby nauty libnauty flint onetbb googletest mpsolve msolve eigen gc ninja_build curl gsl libatomic_ops tox + extra_sage_packages: gdbm git libxml2 gfortran cmake python3 openblas zlib readline sqlite libpng bzip2 liblzma libffi openssl 4ti2 fflas_ffpack boost_cropped cddlib givaro glpk gmp mpc mpfi mpfr ncurses ntl readline lrslib normaliz topcom gfan frobby nauty libnauty flint onetbb googletest mpsolve msolve eigen gc ninja_build curl gsl libatomic_ops tox libgd m4ri m4rie iml targets: SAGE_CHECK=no SAGE_CHECK_PACKAGES="sagemath_macaulay2" sagemath_macaulay2 # Standard setting: Test the current HEAD of passagemath: sage_repo: passagemath/passagemath