INFR: Migrate GitHub Pages deploy to artifact-based workflow#353
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-intro. This removes the gh-pages branch dependency so the branch can be deleted, keeping the repo small (currently ~858 MB). 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. 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) and run the QuantEcon AI link checker against it, matching lecture-python-intro. The now-unused lychee.toml is removed. Part of the rollout tracked in QuantEcon/meta#282. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
✅ Deploy Preview for lustrous-melomakarona-3ee73e ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Contributor
There was a problem hiding this comment.
Pull request overview
This PR migrates the repository’s GitHub Pages deployment to GitHub’s native artifact-based Pages workflow (removing the need for a gh-pages branch) and updates link checking to operate on the latest release HTML archive instead of checking out gh-pages.
Changes:
- Update
publish.ymlto deploy viaquantecon/actions/publish-gh-pages@v0.6.0, including workflow-level Pages/OIDC permissions and Pages concurrency. - Update
linkcheck.ymlto download/extract the latest release.tar.gzand runQuantEcon/action-link-checkeron the extracted HTML. - Remove the now-unused
lychee.toml.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
.github/workflows/publish.yml |
Switches deployment to artifact-based GitHub Pages via publish-gh-pages, adds required permissions/concurrency/environment wiring. |
.github/workflows/linkcheck.yml |
Stops relying on gh-pages checkout; instead pulls the latest release HTML archive and runs the QuantEcon link checker on it. |
lychee.toml |
Removed because Lychee is no longer used by the linkcheck workflow. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Contributor
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 the reference implementations in lecture-jax (#331) and lecture-python-intro. Part of the org-wide rollout tracked in QuantEcon/meta#282.
The repo is currently ~858 MB, largely gh-pages branch history — this migration lets us delete that branch after cutover for a large size reduction (lecture-python-intro went 767 MB → 16 MB).
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, which both uploads the 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.gz(permanent, not subject to artifact expiry) and runsQuantEcon/action-link-checkeragainst it — matching lecture-python-intro (meta#282 "Lesson convert to scroll-output #2: use release assets for linkcheck").lychee.toml.Cutover checklist (post-merge, per meta#282)
github-pages→ add tag rulepublish*publish*tag → verify deploy + live site (python-advanced.quantecon.org)linkcheck.yml(workflow_dispatch) → verify it reads the release assetgh-pagesbranch🤖 Generated with Claude Code