Skip to content

Automate approved Zi milestone release flow #468

Description

@ss-o

Objective

Implement the approval-gated Zi milestone release flow authorized in
z-shell/.github#583.

Publication flow

  1. After a promotion reaches main, compute the next semantic version from
    Conventional Commits since the latest vX.Y.Z tag and prepare draft notes.
  2. Do not create a tag automatically.
  3. Treat a maintainer-pushed annotated, signed tag as publication
    authorization.
  4. Verify that the tag targets the exact current main commit, GitHub reports
    its signature as valid, and required workflows succeeded on that commit.
  5. Publish an idempotent GitHub release with generated notes.

Acceptance criteria

  • Add the minimal caller for the organization release-preparation workflow.
  • Add a tag-triggered release workflow with explicit permissions and
    non-cancelling concurrency.
  • Reject malformed, lightweight, unsigned, off-main, stale, or
    insufficiently validated tags before publication.
  • Keep main as the stable Git-consumption boundary and avoid a stored
    version file.
  • Validate the workflow with actionlint, YAML parsing, focused release
    verification tests, and git diff --check.
  • Document the signed tag as the sole publication authorization.

Dependency

Blocked by z-shell/.github#583. Implementation begins after the policy
change is merged.

Related: #346, #467, v2.0.0

Triage

  • Item Type: CI
  • Impact: Medium
  • Effort: M
  • Priority: P2
  • Workstream: Automation

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:ciContinuous integration or GitHub Actions work.area:releaseRelease process, versioning, or changelog work.area:ziZi core behavior, APIs, or documentation.type:featureA request for new behavior or capability.

    Type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions