Skip to content

feat: add release workflow to build and attach rendered site as release asset#72

Merged
maehr merged 6 commits intomainfrom
fix-#33
Mar 7, 2026
Merged

feat: add release workflow to build and attach rendered site as release asset#72
maehr merged 6 commits intomainfrom
fix-#33

Conversation

@maehr
Copy link
Owner

@maehr maehr commented Mar 6, 2026

Pull request

Proposed changes

Types of changes

  • New feature (non-breaking change which adds functionality).
  • Enhancement (non-breaking change which enhances functionality)
  • Bug Fix (non-breaking change which fixes an issue).
  • Breaking change (fix or feature that would cause existing functionality to change).

Checklist

  • I have read the README document.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.

Summary by CodeRabbit

  • Chores

    • Updated release automation to package and attach rendered documentation with each release
    • Removed automated greeting workflow for first-time contributors
    • Added pre-commit hooks to run formatting and linting for Python, R, and web files
  • Documentation

    • Updated docs and README to note rendered site is included as a release asset for archiving
    • Minor TODO/guide updates and a small ethics wording change

Copilot AI review requested due to automatic review settings March 6, 2026 10:12
@maehr maehr changed the title feat: add release workflow to build and attach rendered site as relea… feat: add release workflow to build and attach rendered site as release asset Mar 6, 2026
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds an automated GitHub Actions release workflow that renders the Quarto site and attaches it to each GitHub Release so downstream archival (e.g., Zenodo) includes the rendered HTML documentation, and updates project docs to reflect this behavior.

Changes:

  • Add a new release.yml workflow to render/optimize the Quarto site and upload a site-<tag>.zip release asset.
  • Update documentation (README/AGENTS/TODO) to describe the rendered-site-in-release behavior and its Zenodo implications.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.

File Description
TODO.md Adds a checklist item documenting that releases include a rendered-site ZIP asset.
README.md Updates Zenodo bullet to mention the rendered documentation site is included as a release asset.
AGENTS.md Extends Zenodo integration guidance to include the rendered-site release asset behavior.
.github/workflows/release.yml New workflow that renders + optimizes the Quarto site and uploads it to the GitHub Release as a ZIP asset.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@coderabbitai
Copy link

coderabbitai bot commented Mar 6, 2026

Caution

Review failed

Pull request was closed or merged during review

📝 Walkthrough

Walkthrough

Removes the greetings GitHub Actions workflow, adds a release-triggered workflow that builds a Quarto site, runs JamPack optimization, packages the rendered site as site-<tag>.zip, and uploads it as a release asset; documentation and pre-commit hooks updated accordingly.

Changes

Cohort / File(s) Summary
Workflows
​.github/workflows/greetings.yml, ​.github/workflows/release.yml
Deleted the greetings workflow; added/updated release.yml to render Quarto, set up environments (Quarto/UV/R), run JamPack optimization on _site, zip the site as site-<tag>.zip, and upload it to the published release.
Documentation
AGENTS.md, README.md, TODO.md
Documented that the release workflow attaches site-<tag>.zip for Zenodo archiving; removed greetings mention from README; added TODO entry about rendered site in releases.
Pre-commit config
.pre-commit-config.yaml
Added/expanded hooks: Prettier (more file types), Ruff (format + lint), type-check, and R formatter/linter hooks with conditional no-op behavior when tools are absent.

Sequence Diagram

sequenceDiagram
    participant GH as "GitHub (release published)"
    participant WF as "release.yml (workflow)"
    participant CO as "actions/checkout"
    participant Q as "Quarto (render)"
    participant JP as "JamPack (optimize)"
    participant Z as "Zip packager"
    participant UP as "Release upload (gh/softprops)"

    GH->>WF: release published event
    WF->>CO: checkout repository
    CO-->>WF: code ready
    WF->>Q: render project → _site
    Q-->>WF: _site built
    WF->>JP: optimize _site assets
    JP-->>WF: assets optimized
    WF->>Z: compress _site → site-<tag>.zip
    Z-->>WF: archive ready
    WF->>UP: upload ZIP to release
    UP-->>GH: asset attached to release
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • mtwente

Poem

🐇 I hopped through branches, tidy and spry,
Built the site beneath the release-day sky,
Zipped the pages, wrapped them tight,
Off to Zenodo for safekeep tonight!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Out of Scope Changes check ⚠️ Warning Some changes exceed the scope of issue #33: removal of greetings workflow and unrelated pre-commit hooks (Ruff Format/Lint, Ty Check, R Format/Lint) are outside the core release workflow objective. Consider separating pre-commit hook and greetings workflow removals into distinct pull requests to keep focus on the release workflow feature.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main feature being added: a release workflow that builds the Quarto site and attaches it as a release asset.
Description check ✅ Passed The description follows the template with completed sections: links to issue #33, marks change as new feature, and confirms documentation updates were made.
Linked Issues check ✅ Passed The changes implement all requirements from issue #33: added release workflow triggered on release publication, builds and compresses Quarto site using existing steps, uses gh CLI for uploading, and maintains clean repository history.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix-#33

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/workflows/release.yml:
- Around line 29-41: The workflow installs astral-sh/setup-uv but never
provisions the uv-managed Python environment before rendering Quarto, so Quarto
may run against the wrong interpreter; after the "Install uv" step run the uv
provisioning command (e.g., "uv sync" or "uv install"—whichever your repo uses)
to install/sync pyproject.toml dependencies, and change the "Render Quarto
Project" step from using quarto-dev/quarto-actions/render@v2 to invoking Quarto
via the uv-managed interpreter (for example run "uv exec -- quarto render --to
html" or "uv run quarto render --to html") so rendering uses the uv environment;
reference the existing steps "Install uv" and "Render Quarto Project" and
replace the render uses step with a run that calls Quarto under uv.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 536c5a53-e109-466b-9ce3-2a5cf548d0a9

📥 Commits

Reviewing files that changed from the base of the PR and between 37b3249 and a791974.

📒 Files selected for processing (5)
  • .github/workflows/greetings.yml
  • .github/workflows/release.yml
  • AGENTS.md
  • README.md
  • TODO.md
💤 Files with no reviewable changes (1)
  • .github/workflows/greetings.yml

@maehr maehr merged commit a9b4333 into main Mar 7, 2026
6 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Include built Quarto site in releases for Zenodo archiving

2 participants