Skip to content

Publishing Workflow Upgrade - Phase 1: HTML Archive to Release Assets #253

@mmcky

Description

@mmcky

Overview

This issue tracks the implementation of Phase 1 publishing workflow upgrades across QuantEcon lecture repositories. The upgrade adds HTML archive backups to GitHub release assets.

Changes Implemented

The following steps have been added to the publish.yml workflow in each repository:

  1. Create HTML archive - Compresses _build/html/ into a .tar.gz archive after the HTML build
  2. Generate checksum - Creates SHA256 hash for integrity verification (html-checksum.txt)
  3. Create manifest - Generates metadata file with build information (html-manifest.json)
  4. Upload to release - Attaches all three files to the GitHub release using softprops/action-gh-release@v1

Release Assets Created

Each publish-* tag will now include:

  • 📦 {repo-name}-html-{tag}.tar.gz - Full HTML site archive (~200-300 MB)
  • 🔐 html-checksum.txt - SHA256 verification file
  • 📋 html-manifest.json - Build metadata (tag, commit, timestamp, size, file count)

Implementation Status

✅ Pull Requests Created

Repository PR Status
lecture-python.myst #662 Merged (Reference)
lecture-python-programming.myst #422 Merged
lecture-python-advanced.myst #289 Merged
lecture-python-intro #659 Merged
lecture-jax #239 Merged
lecture-intro.zh-cn #191 🔄 Open
lecture-python-programming.fa #15 🔄 Open

🔄 Pending Repositories

Repository Status Notes
lecture-datascience.myst ⏳ Pending Not yet implemented
lecture-julia.myst ⏳ Pending Not yet implemented
lecture-python.zh-cn ⏳ Pending Not yet implemented

Key Features

  • ✅ Does not modify _build/html/ directory (gh-pages deployment unaffected)
  • ✅ Preserves existing release notes (no body override)
  • ✅ Automatic tag detection from workflow context
  • ✅ Creates safety net before Phase 2 (gh-pages history cleanup)

Testing Plan

After merging each PR, test with a publish-test-* tag to verify:

  1. Workflow completes successfully
  2. Three HTML assets are attached to release
  3. Archive can be downloaded and extracted
  4. Checksum verification works: sha256sum -c html-checksum.txt

Related

Next Steps

  • Review and merge open PRs
  • Test with publish-test-* tags
  • Monitor first production releases
  • Implement Phase 1 for remaining repositories
  • Plan Phase 2 implementation (gh-pages orphan branch conversion)

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