GitHub Releases
Releases provide a record of each version with downloadable artifacts and release notes. This guide covers creating releases and configuring automatic release notes.
Creating Releases
Use the repository-release action after cutting a version tag:
- name: Create release
uses: p6m-actions/repository-release@v1
with:
tag: ${{ steps.tag.outputs.tag }}
name: Release ${{ steps.tag.outputs.version }}
generate-release-notes: true
make-latest: true
artifacts: digest.txt
Release Artifacts
Include artifacts that downstream workflows need:
| Artifact | Purpose |
|---|---|
digest.txt | Image digest for promotion workflow |
| Changelog | Human-readable change summary |
| Build metadata | Build info for debugging |
The promotion workflow downloads digest.txt to get the exact image to deploy.
Automatic Release Notes
GitHub can generate release notes from merged pull requests:
- uses: p6m-actions/repository-release@v1
with:
generate-release-notes: true
Configuring Categories
Create .github/release.yml to organize changes by label:
changelog:
categories:
- title: Features
labels:
- enhancement
- title: Bug Fixes
labels:
- bug
- title: Documentation
labels:
- documentation
Prerelease Versions
For alpha, beta, or release candidate versions, mark the release as a prerelease:
- uses: p6m-actions/repository-release@v1
with:
tag: ${{ steps.tag.outputs.tag }}
prerelease: true
This produces versions like 1.2.0-rc.1 that won't be marked as the latest release.
Related
- Versioning — Semantic versioning and tag cutting
- Promotion — Deploying releases to environments
- GitHub Releases Documentation