INFR: Migrate GitHub Pages deploy to artifact-based workflow#953
Merged
Conversation
Replace the peaceiris/actions-gh-pages deploy with native, artifact-based GitHub Pages deployment via quantecon/actions/publish-gh-pages@v0.6.0, matching lecture-jax and lecture-python-advanced.myst. This removes the gh-pages branch dependency so the branch can be deleted, reclaiming a large amount of space (repo is currently ~4.5 GB). The single publish-gh-pages step replaces the previous three-step archive/upload-release/peaceiris-deploy block: it uploads the release assets (create-release-assets) and deploys the Pages artifact via OIDC. The GPU runner, execution-report uploads, and notebook sync are unchanged. linkcheck.yml previously checked out the gh-pages branch, which will no longer exist. Switch it to download and extract the latest release .tar.gz (permanent, not subject to artifact expiry) into _site and point lychee's --root-dir and glob there. lychee is kept (not swapped for the QuantEcon AI checker) to preserve the tuned false-positive suppression from #906 and #933; a follow-up issue tracks the eventual AI-checker upgrade. Part of the rollout tracked in QuantEcon/meta#282. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Contributor
Author
Contributor
There was a problem hiding this comment.
Pull request overview
Migrates this repository’s GitHub Pages publishing pipeline from a gh-pages branch deployment to GitHub’s native artifact-based Pages workflow (plus release asset uploads), and updates the link checker workflow to validate links against the latest release HTML archive instead of checking out gh-pages.
Changes:
- Updated
publish.ymlto usequantecon/actions/publish-gh-pages@v0.6.0(artifact-based Pages deploy + optional release assets) with appropriate workflow permissions, concurrency, andgithub-pagesenvironment metadata. - Updated
linkcheck.ymlto download/extract the latest release HTML.tar.gzinto_siteand run lychee against that extracted site root.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| .github/workflows/publish.yml | Switches Pages deploy to artifact-based workflow via quantecon/actions/publish-gh-pages, adds required permissions/concurrency/environment. |
| .github/workflows/linkcheck.yml | Replaces gh-pages checkout with “download latest release archive → extract → run lychee with updated root-dir/glob”. |
📖 Netlify Preview Ready!Preview URL: https://pr-953--sunny-cactus-210e3e.netlify.app Commit: Build Info
|
…pipe Make stdin extraction explicit (tar -xzf -) rather than relying on GNU tar's compiled-in default archive device. Addresses Copilot review feedback on #953. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
mmcky
added a commit
to QuantEcon/lecture-python-advanced.myst
that referenced
this pull request
Jul 8, 2026
…pipe (#355) Make stdin extraction explicit (tar -xzf -) rather than relying on GNU tar's compiled-in default archive device. Backports the fix from QuantEcon/lecture-python.myst#953 for consistency across the migrated linkcheck workflows. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
12 tasks
mmcky
added a commit
to QuantEcon/lecture-python-intro
that referenced
this pull request
Jul 8, 2026
…pipe (#786) Make stdin extraction explicit (tar -xzf -) rather than relying on GNU tar's compiled-in default archive device. Backports the fix from QuantEcon/lecture-python.myst#953 for consistency across the migrated linkcheck workflows. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Migrates GitHub Pages deployment to the native, artifact-based workflow, matching lecture-jax (#331) and lecture-python-advanced.myst (#353). Part of the org-wide rollout tracked in QuantEcon/meta#282.
This repo is ~4.5 GB — by far the largest in the family, mostly
gh-pagesbranch history — so deleting that branch after cutover should be the biggest single size reduction of the rollout.Changes
publish.ymlpermissions(pages: write,id-token: writefor OIDC, pluscontents: write/actions: read), apagesconcurrencygroup, and thegithub-pagesdeploymentenvironment.peaceiris/actions-gh-pagesdeploy block with a singlequantecon/actions/publish-gh-pages@v0.6.0step (uploads release assets and deploys the Pages artifact)..notebookssync are unchanged.linkcheck.ymlgh-pagesbranch, which will no longer exist after cutover. Now downloads and extracts the latest release.tar.gzinto_siteand repoints lychee's--root-dirand glob there.QuantEcon/action-link-checker) to preserve the tuned false-positive suppression from Link Checker Report #906 and Link Checker Report #933 (--accept 202,--exclude-pathfor genindex/search/prf-prf, the Journal of Derivatives DOI exclude). A follow-up issue tracks the eventual AI-checker upgrade.Cutover checklist (post-merge, per meta#282)
github-pages→ add tag rulepublish*publish*tag → verify deploy + live site (python.quantecon.org)linkcheck.yml(workflow_dispatch) → verify it reads the release assetgh-pagesbranch🤖 Generated with Claude Code