This action will keep a release drafted, with the next semantic version, and auto-generated release notes.
Want to see more feature? Request one...
| Input | Req. | Default Value | Input Description |
|---|---|---|---|
| semver | - | prerelease |
Semantaic Version to Incriment |
| identifier | - | beta |
Prerelease Tag to Append |
| prerelease | - | true |
Set Draft as Prerelease |
| prefix | - | - | Release Tag Prefix |
| previous_tag_name | - | - | Previous Tag or SHA for Comparison |
| notes_prefix | - | - | Prefix for Release Notes Tag |
| summary | - | true |
Add Job Summary to Workflow |
| token | - | github.token |
Only for Use with a PAT |
semver: This is the string passed to semver.inc() to determine which version to increment.
For more details, see the docs.
previous_tag_name: Override the previous tag used as the starting point for generating release notes. This can be a tag name or a commit SHA. Use this if your release tag was moved after publication (e.g., by a force-push to a release branch) and the auto-detected tag name no longer produces correct release notes. Defaults to the latest release tag name.
notes_prefix: Override the prefix used for the tag name when generating release notes.
When set, the prefix is prepended to the version number before passing to generateReleaseNotes.
For example, if your release tag is master-1.0.6 and you set notes_prefix: '', the notes will
reference 1.0.6 instead of master-1.0.6. If unset, the full release tag name is used.
👀 View Example Job Summary
Coming Soon...
With no inputs this will keep a pre-release drafted with the prerelease version incremented.
- name: 'Draft Release Action'
uses: cssnr/draft-release-action@masterThis action requires the following permissions to draft releases:
permissions:
contents: writePermissions documentation for Workflows and Actions.
| Output | Description |
|---|---|
| release | Release JSON Object |
| url | Release HTML URL |
- name: 'Draft Release Action'
id: draft
uses: cssnr/draft-release-action@master
- name: 'Echo Output'
env:
RELEASE: ${{ steps.draft.outputs.release }}
run: |
echo "url: '${{ steps.draft.outputs.url }}'"
echo "commit: ${RELEASE}"💡 Click on an example heading to expand or collapse the example.
This workflow will keep a new draft up-to-date on every push to master.
name: 'Draft Release'
on:
workflow_dispatch:
push:
branches: ['master']
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
draft:
name: 'Draft Release'
runs-on: ubuntu-latest
timeout-minutes: 5
permissions:
contents: write
steps:
- name: 'Checkout'
uses: actions/checkout@v6
- name: 'Draft Release Action'
id: draft
uses: cssnr/draft-release-action@master
- name: 'Process Release Draft URL'
run: |
echo "url: ${{ steps.draft.outputs.url }}"This workflow example is available here: .github/example/draft.yaml
For more examples, you can check out other projects using this action:
https://github.com/cssnr/draft-release-action/network/dependents
The following rolling tags are maintained.
| Version Tag | Rolling | Bugs | Feat. | Name | Target | Example |
|---|---|---|---|---|---|---|
| ✅ | ✅ | ✅ | Major | vN.x.x |
vN |
|
| ✅ | ✅ | ❌ | Minor | vN.N.x |
vN.N |
|
| ❌ | ❌ | ❌ | Micro | vN.N.N |
vN.N.N |
You can view the release notes for each version on the releases page.
The Major tag is recommended. It is the most up-to-date and always backwards compatible. Breaking changes would result in a Major version bump. At a minimum you should use a Minor tag.
If you run into any issues or need help getting started, please do one of the following:
If you would like to submit a PR, please review the CONTRIBUTING.md.
Please consider making a donation to support the development of this project and additional open source projects.
Additionally, you can support other GitHub Actions I have published:
- Stack Deploy Action
- Portainer Stack Deploy Action
- Docker Context Action
- AI Issue Action
- Actions Up Action
- Webstore Publish Action
- Rhysd Actionlint Action
- Zensical Action
- VirusTotal Action
- Homebrew Action
- Mirror Repository Action
- Update Version Tags Action
- Docker Tags Action
- TOML Action
- Update JSON Value Action
- JSON Key Value Check Action
- Parse Issue Form Action
- Cloudflare Purge Cache Action
- Mozilla Addon Update Action
- Package Changelog Action
- NPM Outdated Check Action
- Label Creator Action
- Algolia Crawler Action
- Create Pull Action
- Upload Release Action
- Check Build Action
- Web Request Action
- Get Commit Action
❔ Unpublished Actions
These actions are not published on the Marketplace, but may be useful.
- cssnr/create-files-action - Create various files from templates.
- cssnr/draft-release-action - Keep a draft release ready to publish.
- cssnr/env-json-action - Convert env file to json or vice versa.
- cssnr/push-artifacts-action - Sync files to a remote host with rsync.
- smashedr/update-release-notes-action - Update release notes.
- smashedr/combine-release-notes-action - Combine release notes.
- smashedr/openai-translate-action - OpenAI translate action.
📝 Template Actions
These are basic action templates that I use for creating new actions.
- javascript-action - JavaScript
- typescript-action - TypeScript
- py-test-action - Dockerfile Python
- test-action-uv - Dockerfile Python UV
- docker-test-action - Docker Image Python
Note: The docker-test-action builds, runs and pushes images to GitHub Container Registry.
For a full list of current projects visit: https://cssnr.github.io/
