Skip to content

ci(release): publish tagged releases from triggering ref - #249

Open
binaryaaron wants to merge 2 commits into
binaryaaron/add-misefrom
binaryaaron/release-on-tags
Open

ci(release): publish tagged releases from triggering ref#249
binaryaaron wants to merge 2 commits into
binaryaaron/add-misefrom
binaryaaron/release-on-tags

Conversation

@binaryaaron

@binaryaaron binaryaaron commented Aug 13, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • trigger the full release path when a v* tag is pushed
  • retain manual workflow_dispatch with dry-run and create-gh-release, without a separate release-ref
  • build, publish, and deploy docs from the run's triggering revision
  • remove the temporary release-target checkout and project-directory task arguments added in build: migrate developer tasks to mise #211
  • keep release orchestration thin by calling build:wheel, docs:build, and docs:deploy
  • target manually created GitHub release tags at the triggering github.sha
  • reject tag-triggered releases when the tag and built package version differ
  • add regression coverage for trigger, checkout, task, and tag-release contracts

Context

This is stacked on #211. The separate release-ref came from the generic FW-CI release template in #54 and remained when #93 moved the release workflow into this repository. Safe Synthesizer later moved to tag-push releases in Safe-Synthesizer #361. This follow-up adopts that single-revision strategy while preserving manual dispatch for dry runs and controlled release testing.

Validation

  • mise tasks validate: all 26 tasks passed
  • mise run test -- tests/tools/test_mise_configuration.py -q: 22 focused workflow and tooling tests passed
  • mise run check ::: test: 1,213 tests passed; format, lint, type, lock, SPDX, and benchmark shell checks passed
  • mise run docs:build: strict documentation build passed
  • independent reviewed-engineering review: accepted with no findings

Commits 5f3cb9c and 734d776 are signed and DCO-signed.

@binaryaaron
binaryaaron requested review from a team as code owners August 13, 2026 23:10
@greptile-apps

greptile-apps Bot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR makes v* tag pushes run the complete release process from the triggering revision while retaining controlled manual releases.

  • Builds and publishes the wheel from the triggering checkout.
  • verifies that tag-triggered builds match the package version before publication.
  • Creates the GitHub release at the triggering SHA and deploys versioned documentation.
  • Simplifies build and documentation tasks to operate on the current checkout.
  • Adds regression coverage for the release workflow and task contracts.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains; the previously reported tag/package mismatch is now checked before either package upload, and the documented release-candidate tag format is compatible with that check.

Important Files Changed

Filename Overview
.github/workflows/release.yml Adds tag-triggered releases, consistently uses the triggering checkout, validates tag/package version identity before publishing, and orchestrates package, GitHub, and documentation releases.
.mise/tasks/build/wheel Simplifies wheel builds to clean and build the current checkout's dist/ directory.
.mise/tasks/docs.toml Simplifies documentation build and deployment tasks to run from the current checkout.
tests/tools/test_mise_configuration.py Adds regression assertions covering release triggers, checkout behavior, publication conditions, version guarding, and current-checkout task contracts.
DEVELOPMENT.md Removes obsolete separate-project task examples while retaining the stable and release-candidate tag format contract.

Sequence Diagram

sequenceDiagram
    participant Tag as v* tag push
    participant Build as publish-wheel
    participant PyPI as Package registries
    participant GH as GitHub release
    participant Docs as Documentation deployment
    Tag->>Build: Checkout triggering revision
    Build->>Build: Build wheel and derive version
    Build->>Build: Verify tag equals v + wheel version
    Build->>PyPI: Publish wheel
    Build-->>GH: Provide built version and artifact
    GH->>GH: Create release at triggering SHA
    GH-->>Docs: Release completed
    Docs->>Docs: Build and deploy versioned docs
Loading

Reviews (4): Last reviewed commit: "fix(release): reject mismatched version ..." | Re-trigger Greptile

Comment thread .github/workflows/release.yml
@binaryaaron
binaryaaron force-pushed the binaryaaron/release-on-tags branch 2 times, most recently from cfe2ec2 to 734d776 Compare August 14, 2026 15:59
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
@binaryaaron
binaryaaron force-pushed the binaryaaron/add-mise branch from 3cea487 to 85357f2 Compare August 14, 2026 18:13
@binaryaaron
binaryaaron force-pushed the binaryaaron/release-on-tags branch from 734d776 to d64940d Compare August 14, 2026 18:13
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.

1 participant