Skip to content

Procedure: Migrate to native Pages deployment and delete gh-pages branch #500

@mmcky

Description

@mmcky

Procedure: Deploy and clean up gh-pages branch

Follow these steps after PR #499 is merged to complete the migration to native GitHub Pages deployment.

Pre-requisites

Step 1: Change GitHub Pages source

  1. Go to Settings → Pages in the repository
  2. Under "Build and deployment", change Source from "Deploy from a branch" to "GitHub Actions"
  3. Save

Step 2: Trigger a test deployment

Create a publish tag to trigger the updated workflow:

git checkout main
git pull origin main
git tag publish-2026mar26-test
git push origin publish-2026mar26-test

Step 3: Verify deployment

  • Check the Actions tab — the publish workflow should complete successfully
  • Verify the github-pages environment shows the deployment in the repo's Environments page
  • Visit https://python-programming.quantecon.org/ and confirm the site loads correctly
  • Spot-check 3+ lecture pages to verify content renders properly
  • Verify release assets (tar.gz, checksum, manifest) are attached to the release
  • Verify the notebook sync step completed (check lecture-python-programming.notebooks repo)

Step 4: Verify linkcheck still works

Either wait for the weekly scheduled run, or trigger manually:

  1. Go to Actions → Link Checker [Anaconda, Linux]
  2. Click Run workflow (workflow_dispatch)
  3. Verify it completes and correctly downloads/extracts the Pages artifact

Step 5: Delete the gh-pages branch

Once everything above is confirmed working:

# Delete remote gh-pages branch
git push origin --delete gh-pages

# Delete local gh-pages branch (if it exists)
git branch -D gh-pages 2>/dev/null || true

# Clean up local references
git remote prune origin

Expected space savings: ~300MB reclaimed from the repository (153 deploy snapshot commits from Oct 2020 – March 2026).

Note: Team members who have cloned the repo should run:

git fetch --prune
git branch -D gh-pages 2>/dev/null || true
git gc --prune=now

Rollback procedure

If the native deployment fails and the site goes down:

  1. Re-create the gh-pages branch from the last known good deploy:
    git checkout fc6487c  # latest gh-pages commit (March 20, 2026 deploy)
    git checkout -b gh-pages
    git push origin gh-pages
  2. Change Settings → Pages source back to "Deploy from a branch" (gh-pages / root)
  3. Revert PR Migrate to native GitHub Pages deployment (no gh-pages branch) #499 on main

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions