chore: new release processes - #1090
joaodordio wants to merge 3 commits into
Conversation
Replaces the monolithic release workflow with a two-step process: - Prepare Release: bumps version, updates changelog, opens PR, creates GitHub draft release - Publish Release: promotes draft, tags master/main, publishes to distribution, posts Slack Ref: SDK release process team agreement 2026-09-11
|
This PR does not touch Either put |
… grep
- Add ref: master/main to actions/checkout in all prepare/publish workflows
so workflows always operate on the default branch regardless of dispatch ref
- Replace shell-injection-prone ${{ steps...outputs.notes }} pattern with
--notes-file using $RUNNER_TEMP/release-notes.md (safe from backticks/quotes
in changelog content)
- Treat empty [Unreleased] section as a hard error in prepare-release
- Fix CHANGELOG verification grep: grep -qE "^## \[VERSION\]" (anchored,
prevents substring matches and prefix collisions like 3.1.0 vs 3.1.0-rc1)
Replace SDK_RELEASE_TOKEN (iOS) and GITHUB_TOKEN (all repos) with a short-lived installation token from the iterable-sdk-release GitHub App, generated via actions/create-github-app-token@v1. Benefits: - App token triggers CI on PRs it creates (GITHUB_TOKEN cannot) - 1h TTL vs long-lived PAT - Workflow-scoped permissions so we can push .github/workflows/ files Required credentials (repo variable + secret, or set at org level): vars.ITERABLE_SDK_RELEASE_APP_ID secrets.ITERABLE_SDK_RELEASE_APP_PRIVATE_KEY
|
*PR body “Secrets to add”: Still only mentions What the code does: Prepare and Publish require What the spec says: This PR’s “Secrets to add” is the operator checklist for the first run. Why it conflicts: First Prepare/Publish will fail at token mint if those are missing; the PR body does not mention them. Suggested action: Document the App id/variable and private-key secret alongside |
Summary
Replaces the existing ad-hoc release workflows with a standardized two-step process across all SDKs.
No customer facing changes
Workflow 1: Prepare Release (
workflow_dispatch)Inputs:
version,ticket[Unreleased]to new version section)Workflow 2: Publish Release (
workflow_dispatch)Input:
version#eng-sdk-teamon SlackFiles changed
.github/workflows/prepare-release.yml.github/workflows/publish-release.ymlSecrets to add
SLACK_WEBHOOKmust be configured in repo Settings > Secrets > Actions before the first Publish Release run.Related: [SDK Release Process Team Agreement 2026-09-11]
No customer facing changes