Skip to content

Add auto-release workflow#296

Merged
bguidolim merged 6 commits intomainfrom
bruno/auto-release-workflow
Mar 25, 2026
Merged

Add auto-release workflow#296
bguidolim merged 6 commits intomainfrom
bruno/auto-release-workflow

Conversation

@bguidolim
Copy link
Copy Markdown
Collaborator

@bguidolim bguidolim commented Mar 25, 2026

Summary

  • Adds daily automated release workflow (23:00 UTC)
  • Detects production Swift changes (Sources/**/*.swift) since last tag
  • Bumps MCSVersion.current, commits to main, creates and pushes tag
  • Existing release.yml handles the rest (build, GitHub Release, Homebrew tap)
  • Supports workflow_dispatch with a dry-run checkbox for testing

Design

  • Single workflow, single job, ubuntu-latest (only git + sed needed)
  • Uses a GitHub App via actions/create-github-app-token@v3 — app token pushes trigger downstream workflows (unlike GITHUB_TOKEN)
  • App added as bypass actor in "Main Protection" ruleset, allowing direct push to main
  • Comprehensive release summary in logs: version bump diff, included commits, changed files, and planned actions
  • Idempotent: skips if tag already exists, no changes detected, or only test/non-production changes

Prerequisites (already completed)

  • GitHub App created and installed on the repo
  • APP_ID and APP_PRIVATE_KEY secrets configured
  • App added as bypass actor in branch ruleset

Test plan

  • Merge this PR
  • Test via workflow_dispatch with dry-run enabled — verify summary output
  • Test via workflow_dispatch with dry-run disabled — verify tag creation and release.yml trigger
  • Verify skip behavior on re-run (tag already exists)

- Daily at 23:00 UTC, checks for production Swift changes since last tag
- Bumps version, commits to main, creates and pushes tag
- Requires deploy key with bypass actor in branch ruleset
- Deploy keys disabled by org policy
- Generate installation token via actions/create-github-app-token
- Pass token to actions/checkout for authenticated pushes
@bguidolim bguidolim enabled auto-merge (squash) March 25, 2026 18:57
@bguidolim bguidolim merged commit 540adad into main Mar 25, 2026
4 checks passed
@bguidolim bguidolim deleted the bruno/auto-release-workflow branch March 25, 2026 18:59
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