Skip to content

Release automation: deterministic artifacts + dry-run workflow + tests#59

Merged
blindzero merged 9 commits intomainfrom
issues/13-Release-automation-tag---build-ZIP-artifact---GitHub-Release-notes
Jan 10, 2026
Merged

Release automation: deterministic artifacts + dry-run workflow + tests#59
blindzero merged 9 commits intomainfrom
issues/13-Release-automation-tag---build-ZIP-artifact---GitHub-Release-notes

Conversation

@blindzero
Copy link
Copy Markdown
Owner

Summary

This PR implements the v0.7.0 / Issue #13 “Release automation” foundations:

  • adds a deterministic release artifact builder that produces a stable ZIP (stable ordering + stable entry timestamps).
  • Adds a GitHub Actions release workflow:
    • triggers on tags v*
    • supports manual dry-run via workflow_dispatch (build ZIP + upload as workflow artifact without publishing a GitHub Release)
    • Adds maintainer documentation for cutting releases (advanced docs).
  • Adds Pester tests to prevent regressions (determinism + excludes + tag validation).

Why

  • Reduces manual release steps and makes releases repeatable and less error-prone.
  • Deterministic artifacts improve traceability and are a good baseline for supply-chain hygiene.
  • Dry-run mode allows validating packaging without creating a GitHub Release, which also works well with immutable releases.

Changes

CI

  • Release workflow for tag-based releases + workflow-dispatch dry-run (artifact upload).
  • Release Packaging
  • Hardened packaging script with stable sorting and stable ZIP metadata.
  • Ensures excluded paths never end up in the release artifact.
  • tools/ excluded from release artifact (ship the product, not the factory).

Docs

  • Adds docs/advanced/releasing.md (maintainer guide).

Tests

  • Adds Pester contract tests for the packaging script.
  • Testing
    • Pester: all tests green locally.
    • Dry-run release can be validated via:
    • GitHub → Actions → Release → Run workflow: tag: v0.7.0-test, publish_release: false
    • download ZIP from workflow artifacts and inspect contents.

Notes

Immutable releases are supported and recommended.
Published releases should be treated as write-once; fixes should go out as a new version tag.

Issues

Closes: #13 (Release automation)

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: cb7a1e3e24

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/release.yml
When workflow_dispatch is called with explicit inputs.tag, the checkout step
must reference that tag to ensure the ZIP is built from the correct commit.

Previously, the workflow would checkout the default branch and then build
from that code, while using the user-supplied tag in the artifact name.
This caused a silent mismatch between the artifact content and its tag label.

Fixes: P1 review comment - checkout must reference ref: steps.tag.outputs.value
@blindzero blindzero merged commit fd54683 into main Jan 10, 2026
4 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.

Release automation: tag - build ZIP artifact - GitHub Release notes

1 participant