Skip to content

ci: add production release automation workflows - #760

Open
ehsandeep wants to merge 6 commits into
mainfrom
ehsandeep-proxify-release-poc
Open

ci: add production release automation workflows#760
ehsandeep wants to merge 6 commits into
mainfrom
ehsandeep-proxify-release-poc

Conversation

@ehsandeep

Copy link
Copy Markdown
Member

Summary

This PR adds the actual release automation flow for proxify, built on the reusable pieces already merged in projectdiscovery/actions.

Files changed

  1. .github/workflows/release-tag.yml — new workflow

    • Runs automatically on pushes to main
    • Uses projectdiscovery/actions/svu-next@v1.29.4 to compute and create the next release tag
    • Supports manual workflow_dispatch controls for:
      • ref
      • dry-run
      • always-bump
      • prerelease
      • metadata
      • tag-prefix
      • v0
  2. .github/workflows/release-binary.yml — production publish workflow

    • Still publishes on push.tags: v*
    • Switched from direct goreleaser/goreleaser-action usage to projectdiscovery/actions/goreleaser@v1.29.4
    • Adds guarded manual workflow_dispatch support with:
      • required tag
      • optional ref
      • announce toggle
      • extra goreleaser-args
    • Rejects manual runs that do not target an explicit v* tag
    • Sets GORELEASER_CURRENT_TAG explicitly for manual publish runs

Resulting release flow

Automatic path

  1. Merge to main
  2. release-tag.yml computes the next version and pushes the tag
  3. Tag push triggers release-binary.yml
  4. release-binary.yml publishes the GitHub release and binaries via GoReleaser

Manual path

  • Run Create Release Tag to preview or create the next tag from any ref
  • Run Release Binary against an explicit existing tag when you need a controlled manual publish or re-run

Guardrails kept in the real workflow

  • PRs do not publish anything
  • Manual publish requires an explicit v* tag
  • Announcements can be disabled for manual runs
  • Tag creation and binary publishing stay separated into two workflows, so tag creation remains the release gate

Why this uses projectdiscovery/actions

The release safety and shared behavior now live centrally in the actions repo:

  • svu-next handles next-version calculation and optional dry-run tagging
  • goreleaser wraps the shared GoReleaser invocation

That keeps proxify as a thin consumer and makes rollout to other repos straightforward.

ehsandeep and others added 6 commits July 31, 2026 05:35
- Replace goreleaser/goreleaser-action@v6 with projectdiscovery/actions/goreleaser@v1.29.4
- Add svu-based next-version computation (read-only, no tag push)
- Set GORELEASER_CURRENT_TAG so snapshot artifacts carry the real next version
- Pin permissions to contents:read so the job cannot push tags
- Add .goreleaser.yml and workflow self-trigger to path filters
- Write next version + artifact list to $GITHUB_STEP_SUMMARY

This is a PR-only dry-run: release:true + --snapshot runs the full
goreleaser pipeline (build, archive, checksums) but skips publish/announce.
No tags or releases are created from PR builds.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
- add release-tag workflow for automatic main tagging and manual tag controls
- switch release-binary to projectdiscovery/actions/goreleaser
- require explicit tags for manual publish runs and support announce toggles
- restore release-test workflow to its pre-POC state so the PR stays focused

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
- replace low-level manual inputs with run-mode, version-bump, and exact-version
- keep automatic push-to-main tagging path unchanged
- keep manual dry-run and explicit exact tag support in a simpler form
- retain summary output for manual and automatic runs

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
- change release-tag manual version-bump option from exact to custom
- rename exact-version input to custom-version
- keep behavior unchanged, only simplify naming for the workflow UI

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
- remove automatic tag creation on push to main
- keep manual dispatch with simplified run-mode and version-bump controls
- preserve explicit tag creation as the release gate

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
- run weekly (every Monday 09:00 UTC) and create a tag only if there
  are new commits since the last release tag
- keep manual workflow_dispatch with run-mode, version-bump, custom-version
- manual dry-run default so accidental triggers are safe

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
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