Auto Release Workflow
January 23, 2026 ยท View on GitHub
This directory contains a reusable GitHub Actions workflow for automated releases based on semantic versioning labels.
Usage in other repositories
To use this workflow in your repository, create .github/workflows/auto-release.yml:
name: Auto Release
on:
schedule:
# Runs at 00:00 UTC every Monday (cron format)
- cron: '0 0 * * 1'
workflow_dispatch:
permissions:
contents: write
pull-requests: read
jobs:
auto-release:
uses: apple/swift-temporal-sdk/.github/workflows/auto-release.yml@main
How it works
The workflow automatically creates releases by:
- Analyzing PR labels since the last release
- Calculating the next version based on semantic versioning labels
- Creating a GitHub release with auto-generated release notes
Semantic versioning labels
Each PR should have one of these labels:
| Label | Description | Example |
|---|---|---|
semver/none | No release needed (e.g., documentation updates, test improvements, CI changes) | N/A |
๐จ semver/patch | Patch release for bug fixes with no public API changes | 0.0.1 โ 0.0.2 |
๐ semver/minor | Minor release for new features that maintain backward compatibility | 0.0.1 โ 0.1.0 |
โ ๏ธ semver/major | Major release for breaking changes (must be created manually) | 0.0.1 โ 1.0.0 |
When a PR is merged, the automation will:
- Analyze all merged PRs since the last release
- Calculate the version bump based on the highest semver impact
- Automatically create a GitHub release with the newly calculated semantic version tag and generated release notes
Note: The first release and all major releases must be created manually by maintainers.
Requirements
Before using this workflow, your repository must have:
- At least one existing release - The workflow calculates new versions based on the last release
- Properly configured semver labels - PRs must be labeled with one of:
semver/none,๐จ semver/patch,๐ semver/minor, orโ ๏ธ semver/major .github/release.ymlfile - Required for auto-generating release notes. See GitHub's documentation for configuration details- Semver label validation - Integrate the NIO-provided
semver-label-checkaction to ensure all PRs have appropriate labels - A
mainbranch - The workflow expects releases to be based on themainbranch