forked from sagemath/sage
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'develop' into p/introduce-negated-optional-tag
- Loading branch information
Showing
590 changed files
with
14,736 additions
and
25,349 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -39,7 +39,7 @@ jobs: | |
with: | ||
path: ~/conda_pkgs_dir | ||
key: | ||
${{ runner.os }}-conda-${{ hashFiles('src/environment-3.11-linux.yml') }} | ||
${{ runner.os }}-conda-${{ hashFiles('environment-3.11-linux.yml') }} | ||
|
||
- name: Compiler cache | ||
uses: hendrikmuhs/[email protected] | ||
|
@@ -55,7 +55,7 @@ jobs: | |
channels: conda-forge | ||
channel-priority: true | ||
activate-environment: sage | ||
environment-file: src/environment-${{ matrix.python }}-${{ startsWith(matrix.os, 'macos') && (startsWith(runner.arch, 'ARM') && 'macos' || 'macos-x86_64') || 'linux' }}.yml | ||
environment-file: environment-${{ matrix.python }}-${{ startsWith(matrix.os, 'macos') && (startsWith(runner.arch, 'ARM') && 'macos' || 'macos-x86_64') || 'linux' }}.yml | ||
|
||
- name: Print Conda environment | ||
shell: bash -l {0} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -114,59 +114,77 @@ jobs: | |
- name: Start container | ||
id: container | ||
# Try to continue when "exporting to GitHub Actions Cache" failed with timeout | ||
if: (success() || failure()) | ||
run: | | ||
docker run --name BUILD -dit \ | ||
--mount type=bind,src=$(pwd),dst=$(pwd) \ | ||
--workdir $(pwd) \ | ||
${{ env.BUILD_IMAGE }} /bin/sh | ||
# | ||
# On PRs and pushes to develop | ||
# On pull request and push to develop events | ||
# | ||
|
||
- name: Get workflow run-id | ||
id: get_run_id | ||
if: steps.container.outcome == 'success' && !startsWith(github.ref, 'refs/tags/') && github.event_name == 'pull_request' | ||
run: | | ||
RESPONSE=$(curl -s -L \ | ||
-H "Accept: application/vnd.github+json" \ | ||
-H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \ | ||
"https://api.github.com/repos/${{ github.repository }}/actions/runs?event=push&branch=develop&status=completed") | ||
RUN_ID=$(echo "$RESPONSE" | jq -r --arg name "${{ github.workflow }}" --arg conclusion "success" \ | ||
'.workflow_runs[] | select(.name == $name and .conclusion == $conclusion) | .id' | head -n 1) | ||
echo "RUN_ID=$RUN_ID" >> $GITHUB_ENV | ||
- name: Download old doc | ||
id: download-doc | ||
if: steps.get_run_id.outcome == 'success' | ||
uses: actions/download-artifact@v4 | ||
with: | ||
name: doc-develop | ||
github-token: ${{ secrets.GITHUB_TOKEN }} | ||
repository: ${{ github.repository }} | ||
run-id: ${{ env.RUN_ID }} | ||
|
||
- name: Store old doc | ||
id: worktree | ||
if: (success() || failure()) && steps.container.outcome == 'success' && !startsWith(github.ref, 'refs/tags/') | ||
if: steps.download-doc.outcome == 'success' | ||
run: | | ||
git config --global --add safe.directory $(pwd) | ||
git config --global user.email "[email protected]" | ||
git config --global user.name "Build documentation workflow" | ||
mkdir -p doc | ||
# Check if we are on PR | ||
unzip doc.zip | ||
PR_NUMBER="" | ||
if [[ -n "$GITHUB_REF" ]]; then | ||
if [[ "$GITHUB_REF" =~ refs/pull/([0-9]+)/merge ]]; then | ||
PR_NUMBER="${BASH_REMATCH[1]}" | ||
fi | ||
if [[ "$GITHUB_REF" =~ refs/pull/([0-9]+)/merge ]]; then | ||
PR_NUMBER="${BASH_REMATCH[1]}" | ||
fi | ||
# If so, then prepare to create CHANGES.html | ||
# Create CHANGES.html | ||
if [[ -n "$PR_NUMBER" ]]; then | ||
# mathjax path in old doc (regex) | ||
mathjax_path_from="[-./A-Za-z_]*/tex-chtml[.]js?v=[0-9a-f]*" | ||
# mathjax path in new doc | ||
mathjax_path_to=$(docker exec -e SAGE_USE_CDNS=yes BUILD /sage/sage -python -c "from sage_docbuild.conf import mathjax_path; print(mathjax_path)") | ||
new_version=$(docker exec BUILD cat src/VERSION.txt) | ||
docker cp BUILD:/sage/local/share/doc/sage/html doc/ | ||
# Wipe out chronic diffs between old doc and new doc | ||
(cd doc && \ | ||
find . -name "*.html" | xargs sed -i -e '/class="sidebar-brand-text"/ s/Sage [0-9a-z.]* /Sage '"$new_version"' /' \ | ||
-e '/<link rel="stylesheet"/ s/?v=[0-9a-f]*"/"/' \ | ||
-e 's;?v=[0-9a-f]*";";' \ | ||
-e 's;'"$mathjax_path_from"';'"$mathjax_path_to"';' \ | ||
-e '\;<script type="application/vnd\.jupyter\.widget-state+json">;,\;</script>; d' \ | ||
-e 's;#L[0-9]*";";' \ | ||
-e 's;tab-set--[0-9]*-;tab-set-;' \ | ||
&& true) | ||
# Create git repo from old doc | ||
(cd doc && \ | ||
git init && \ | ||
(echo "*.svg binary"; echo "*.pdf binary") >> .gitattributes && \ | ||
(echo ".buildinfo"; echo '*.inv'; echo '.git*'; echo '*.svg'; echo '*.pdf'; echo '*.png'; echo 'searchindex.js') > .gitignore; \ | ||
(echo "*.svg binary"; echo "*.pdf binary") > .gitattributes && \ | ||
(echo ".buildinfo"; echo '*.inv'; echo '.git*'; echo '*.svg'; echo '*.pdf'; echo '*.png'; echo 'searchindex.js') > .gitignore && \ | ||
git add -A && git commit --quiet -m 'old') | ||
fi | ||
- name: Build doc | ||
id: docbuild | ||
if: (success() || failure()) && steps.worktree.outcome == 'success' && !startsWith(github.ref, 'refs/tags/') | ||
if: steps.container.outcome == 'success' && !startsWith(github.ref, 'refs/tags/') | ||
# Always non-incremental because of the concern that | ||
# incremental docbuild may introduce broken links (inter-file references) though build succeeds | ||
run: | | ||
|
@@ -175,18 +193,22 @@ jobs: | |
export MAKE="make -j5 --output-sync=recurse" SAGE_NUM_THREADS=5 | ||
make doc-clean doc-uninstall | ||
export SAGE_USE_CDNS=yes | ||
export SAGE_DOCBUILD_OPTS="--include-tests-blocks" | ||
./config.status && make sagemath_doc_html-no-deps | ||
shell: sh .ci/docker-exec-script.sh BUILD /sage {0} | ||
|
||
- name: Copy doc | ||
id: copy | ||
if: (success() || failure()) && steps.docbuild.outcome == 'success' | ||
if: steps.docbuild.outcome == 'success' | ||
run: | | ||
set -ex | ||
# We copy everything to a local folder | ||
docker cp --follow-link BUILD:/sage/local/share/doc/sage/html doc | ||
docker cp --follow-link BUILD:/sage/local/share/doc/sage/index.html doc | ||
# Check if we are on PR | ||
# Simpler "docker cp --follow-link ... doc" does not work | ||
mkdir -p doc | ||
mkdir -p temp | ||
docker cp --follow-link BUILD:/sage/local/share/doc/sage/html temp | ||
docker cp --follow-link BUILD:/sage/local/share/doc/sage/index.html temp | ||
cp -r -L temp/* doc/ | ||
# Check if we are on pull request event | ||
PR_NUMBER="" | ||
if [[ -n "$GITHUB_REF" ]]; then | ||
if [[ "$GITHUB_REF" =~ refs/pull/([0-9]+)/merge ]]; then | ||
|
@@ -199,9 +221,10 @@ jobs: | |
# Wipe out chronic diffs of new doc against old doc before creating CHANGES.html | ||
(cd doc && \ | ||
find . -name "*.html" | xargs sed -i -e '/This is documentation/ s/ built with GitHub PR .* for development/ for development/' \ | ||
-e '/<link rel="stylesheet"/ s/?v=[0-9a-f]*"/"/' \ | ||
-e 's;?v=[0-9a-f]*";";' \ | ||
-e '\;<script type="application/vnd\.jupyter\.widget-state+json">;,\;</script>; d' \ | ||
-e 's;#L[0-9]*";";' \ | ||
-e 's;tab-set--[0-9]*-;tab-set-;' \ | ||
&& git commit -a -m 'wipe-out') | ||
# Since HEAD is at commit 'wipe-out', HEAD~1 is commit 'new' (new doc), HEAD~2 is commit 'old' (old doc) | ||
(cd doc && git diff $(git rev-parse HEAD~2) -- "*.html") > diff.txt | ||
|
@@ -221,20 +244,31 @@ jobs: | |
- name: Upload doc | ||
id: upload | ||
if: (success() || failure()) && steps.copy.outcome == 'success' | ||
if: steps.copy.outcome == 'success' | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: doc | ||
path: doc.zip | ||
|
||
- name: Upload doc-develop | ||
# artifact doc-develop is used for doc build on pull request event | ||
id: upload-push | ||
if: steps.copy.outcome == 'success' && github.event_name == 'push' | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: doc-${{ github.ref_name }} | ||
path: doc.zip | ||
|
||
# | ||
# On release tags: live doc and wheels | ||
# On release tag event | ||
# | ||
|
||
- name: Build live doc | ||
id: buildlivedoc | ||
if: (success() || failure()) && startsWith(github.ref, 'refs/tags/') | ||
if: startsWith(github.ref, 'refs/tags/') | ||
run: | | ||
# Avoid running out of disk space | ||
rm -rf upstream | ||
export MAKE="make -j5 --output-sync=recurse" SAGE_NUM_THREADS=5 | ||
export PATH="build/bin:$PATH" | ||
eval $(sage-print-system-package-command auto update) | ||
|
@@ -249,7 +283,7 @@ jobs: | |
|
||
- name: Copy live doc | ||
id: copylivedoc | ||
if: (success() || failure()) && steps.buildlivedoc.outcome == 'success' | ||
if: steps.buildlivedoc.outcome == 'success' | ||
run: | | ||
mkdir -p ./livedoc | ||
# We copy everything to a local folder | ||
|
@@ -259,7 +293,7 @@ jobs: | |
zip -r livedoc.zip livedoc | ||
- name: Upload live doc | ||
if: (success() || failure()) && steps.copylivedoc.outcome == 'success' | ||
if: steps.copylivedoc.outcome == 'success' | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: livedoc | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.