Skip to content

Commit 273993d

Browse files
authored
Merge pull request #3616 from mkoeppe/fix_ci_sage_2022_09
Update .github/workflows/ci-sage.yml
2 parents badd706 + a4a9d1c commit 273993d

File tree

1 file changed

+22
-77
lines changed

1 file changed

+22
-77
lines changed

.github/workflows/ci-sage.yml

Lines changed: 22 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ on:
3737
push:
3838
tags:
3939
- '*'
40+
pull_request:
41+
paths:
42+
- .github/workflows/ci-sage.yml
4043
workflow_dispatch:
4144
# Allow to run manually
4245

@@ -45,19 +48,6 @@ env:
4548
DIST_PREREQ: python3
4649
# Name of this project in the Sage distribution
4750
SPKG: setuptools
48-
# Sage distribution packages to build
49-
TARGETS_PRE: build/make/Makefile
50-
TARGETS: setuptools pyzmq
51-
TARGETS_OPTIONAL: build/make/Makefile
52-
# Standard setting: Test the current beta release of Sage:
53-
SAGE_REPO: sagemath/sage
54-
SAGE_REF: develop
55-
# Test with the branch from https://trac.sagemath.org/ticket/33288
56-
# This may provide hotfixes for the CI that have not been merged into
57-
# the sage develop branch yet.
58-
SAGE_TRAC_GIT: https://github.com/sagemath/sagetrac-mirror.git
59-
SAGE_TICKET: 33288
60-
REMOVE_PATCHES: "*"
6151

6252
jobs:
6353

@@ -85,68 +75,23 @@ jobs:
8575
path: upstream
8676
name: upstream
8777

88-
docker:
89-
runs-on: ubuntu-latest
78+
linux:
79+
# https://github.com/sagemath/sage/blob/develop/.github/workflows/docker.yml
80+
# Use branch of ticket https://trac.sagemath.org/ticket/33288
81+
uses: sagemath/sagetrac-mirror/.github/workflows/docker.yml@u/mkoeppe/setuptools_ci_target
82+
with:
83+
# Sage distribution packages to build
84+
targets: setuptools pyzmq
85+
# Standard setting: Test the current beta release of Sage:
86+
sage_repo: sagemath/sage
87+
sage_ref: develop
88+
upstream_artifact: upstream
89+
sage_trac_git: https://github.com/sagemath/sagetrac-mirror.git
90+
# Test with the branch from https://trac.sagemath.org/ticket/33288
91+
# This may provide hotfixes for the CI that have not been merged into
92+
# the sage develop branch yet.
93+
sage_trac_ticket: 33288
94+
# We prefix the image name with the SPKG name ("setuptools-") to avoid the error
95+
# 'Package "sage-docker-..." is already associated with another repository.'
96+
docker_push_repository: ghcr.io/${{ github.repository }}/setuptools-
9097
needs: [dist]
91-
strategy:
92-
fail-fast: false
93-
max-parallel: 32
94-
matrix:
95-
tox_system_factor: [ubuntu-trusty-toolchain-gcc_9, ubuntu-xenial-toolchain-gcc_9, ubuntu-bionic, ubuntu-focal, ubuntu-hirsute, ubuntu-impish, ubuntu-jammy, ubuntu-kinetic, debian-stretch, debian-buster, debian-bullseye, debian-bookworm, debian-sid, linuxmint-19, linuxmint-19.3, linuxmint-20.1, linuxmint-20.2, linuxmint-20.3, linuxmint-21, fedora-26, fedora-27, fedora-28, fedora-29, fedora-30, fedora-31, fedora-32, fedora-33, fedora-34, fedora-35, fedora-36, fedora-37, centos-7-devtoolset-gcc_11, centos-stream-8, gentoo-python3.9, gentoo-python3.10, archlinux-latest, opensuse-15.3, opensuse-tumbleweed, ubuntu-bionic-i386, manylinux-2_24-i686, debian-buster-i386, centos-7-i386-devtoolset-gcc_11]
96-
tox_packages_factor: [minimal, standard]
97-
env:
98-
TOX_ENV: docker-${{ matrix.tox_system_factor }}-${{ matrix.tox_packages_factor }}
99-
LOGS_ARTIFACT_NAME: logs-commit-${{ github.sha }}-tox-docker-${{ matrix.tox_system_factor }}-${{ matrix.tox_packages_factor }}
100-
DOCKER_TARGETS: configured with-targets with-targets-optional
101-
steps:
102-
- name: Check out SageMath
103-
uses: actions/checkout@v2
104-
with:
105-
repository: ${{ env.SAGE_REPO }}
106-
ref: ${{ env.SAGE_REF }}
107-
fetch-depth: 2000
108-
if: env.SAGE_REPO != ''
109-
- name: Check out git-trac-command
110-
uses: actions/checkout@v2
111-
with:
112-
repository: sagemath/git-trac-command
113-
path: git-trac-command
114-
if: env.SAGE_TRAC_GIT != ''
115-
- name: Check out SageMath from trac.sagemath.org
116-
shell: bash {0}
117-
run: |
118-
git config --global user.email "[email protected]"
119-
git config --global user.name "ci-sage workflow"
120-
if [ ! -d .git ]; then git init; fi; git remote add trac ${{ env.SAGE_TRAC_GIT }} && x=1 && while [ $x -le 5 ]; do x=$(( $x + 1 )); sleep $(( $RANDOM % 60 + 1 )); if git-trac-command/git-trac fetch $SAGE_TICKET; then git merge FETCH_HEAD || echo "(ignored)"; exit 0; fi; sleep 40; done; exit 1
121-
if: env.SAGE_TRAC_GIT != ''
122-
- uses: actions/download-artifact@v2
123-
with:
124-
path: upstream
125-
name: upstream
126-
- name: Install test prerequisites
127-
run: |
128-
sudo DEBIAN_FRONTEND=noninteractive apt-get update
129-
sudo DEBIAN_FRONTEND=noninteractive apt-get install tox python3-setuptools
130-
- name: Update Sage packages from upstream artifact
131-
run: |
132-
(export PATH=$(pwd)/build/bin:$PATH; (cd upstream && bash -x update-pkgs.sh) && sed -i.bak '/upstream/d' .dockerignore && echo "/:toolchain:/i ADD upstream upstream" | sed -i.bak -f - build/bin/write-dockerfile.sh && git diff)
133-
- name: Configure and build Sage distribution within a Docker container
134-
run: |
135-
set -o pipefail; EXTRA_DOCKER_BUILD_ARGS="--build-arg USE_MAKEFLAGS=\"-k V=0 SAGE_NUM_THREADS=3\"" tox -e $TOX_ENV -- $TARGETS 2>&1 | sed "/^configure: notice:/s|^|::warning file=artifacts/$LOGS_ARTIFACT_NAME/config.log::|;/^configure: warning:/s|^|::warning file=artifacts/$LOGS_ARTIFACT_NAME/config.log::|;/^configure: error:/s|^|::error file=artifacts/$LOGS_ARTIFACT_NAME/config.log::|;"
136-
- name: Copy logs from the Docker image or build container
137-
run: |
138-
mkdir -p "artifacts/$LOGS_ARTIFACT_NAME"
139-
cp -r .tox/$TOX_ENV/Dockerfile .tox/$TOX_ENV/log "artifacts/$LOGS_ARTIFACT_NAME"
140-
if [ -f .tox/$TOX_ENV/Dockertags ]; then CONTAINERS=$(docker create $(tail -1 .tox/$TOX_ENV/Dockertags) /bin/bash || true); fi
141-
if [ -n "$CONTAINERS" ]; then for CONTAINER in $CONTAINERS; do for ARTIFACT in /sage/logs; do docker cp $CONTAINER:$ARTIFACT artifacts/$LOGS_ARTIFACT_NAME && HAVE_LOG=1; done; if [ -n "$HAVE_LOG" ]; then break; fi; done; fi
142-
if: always()
143-
- uses: actions/upload-artifact@v2
144-
with:
145-
path: artifacts
146-
name: ${{ env.LOGS_ARTIFACT_NAME }}
147-
if: always()
148-
- name: Print out logs for immediate inspection
149-
# and markup the output with GitHub Actions logging commands
150-
run: |
151-
.github/workflows/scan-logs.sh "artifacts/$LOGS_ARTIFACT_NAME"
152-
if: always()

0 commit comments

Comments
 (0)