This is an opinionated composite Github Action that implements a workflow based on the popular release-drafter
action to automatically draft releases with release notes that are derived from PR descriptions as they are merged into the default branch. ```
Under default settings, auto-release
will also cut a new release from the default branch after every merge into it. However, releases are not cut for merges of pull requests with a no-release
label attached. In that case, the release notes are left as a draft and a release with all unreleased changes will be made the next time a pull request without the no-release
label is merged into the default branch.
Copy the .github/workflows/auto-release.yml
and .github/configs/release-drafter.yml
files from this repository into the corresponding folders of the repository to which you'd like to add Auto-release functionality.
This will trigger the auto-release
functionality every time merges are made into the default branch.
Here's how to get started...
- Copy the
.github/workflows/auto-release.yml
github action workflow from this repository into the corresponding folder of the target repo - Copy the
.github/configs/release-drafter.yml
auto-release config file from this repository into the corresponding folder of the target repo - Customize the config file as desired, per the config documentation
Here's a real world example:
github-action-auto-release
- The self-testing Cloud Posse Auto-format GitHub Action
Name | Description | Default | Required |
---|---|---|---|
config-name | If your workflow requires multiple release-drafter configs it is helpful to override the config-name. The config should still be located inside .github as that's where we are looking for config files. |
configs/draft-release.yml | false |
latest | A string indicating whether the release being created or updated should be marked as latest. |
false | |
prerelease | Boolean indicating whether this release should be a prerelease | false | |
publish | Whether to publish a new release immediately | false | false |
summary-enabled | Enable github action summary. | true | false |
token | Standard GitHub token (e.g., secrets.GITHUB_TOKEN) | ${{ github.token }} | false |
Name | Description |
---|---|
body | The body of the drafted release. |
exists | Tag exists so skip new release issue |
html_url | The URL users can navigate to in order to view the release |
id | The ID of therelease that was created or updated. |
major_version | The next major version number. For example, if the last tag or release was v1.2.3, the value would be v2.0.0. |
minor_version | The next minor version number. For example, if the last tag or release was v1.2.3, the value would be v1.3.0. |
name | The name of the release |
patch_version | The next patch version number. For example, if the last tag or release was v1.2.3, the value would be v1.2.4. |
resolved_version | The next resolved version number, based on GitHub labels. |
tag_name | The name of the tag associated with the release. |
upload_url | The URL for uploading assets to the release, which could be used by GitHub Actions for additional uses, for example the @actions/upload-release-asset GitHub Action. |
Check out these related projects.
- GitHub Action Auto-format - Add standard files to a repo and keep its README up to date
- GitHub Action Terraform Auto-context - Automatically update
context.tf
whenever a new version becomes available - GitHub Action Terraform CI - Full suite of Terraform CI actions, along with chatops support
- GitHub Action Validate CODEOWNERS - Validate and lint contents of CODEOWNERS file
For additional context, refer to some of these links.
- Release Drafter - Drafts your next release notes as pull requests are merged into master
This project is under active development, and we encourage contributions from our community.
Many thanks to our outstanding contributors:
For 🐛 bug reports & feature requests, please use the issue tracker.
In general, PRs are welcome. We follow the typical "fork-and-pull" Git workflow.
- Review our Code of Conduct and Contributor Guidelines.
- Fork the repo on GitHub
- Clone the project to your own machine
- Commit changes to your own branch
- Push your work back up to your fork
- Submit a Pull Request so that we can review your changes
NOTE: Be sure to merge the latest changes from "upstream" before making a pull request!
Join our Open Source Community on Slack. It's FREE for everyone! Our "SweetOps" community is where you get to talk with others who share a similar vision for how to rollout and manage infrastructure. This is the best place to talk shop, ask questions, solicit feedback, and work together as a community to build totally sweet infrastructure.
Sign up for our newsletter and join 3,000+ DevOps engineers, CTOs, and founders who get insider access to the latest DevOps trends, so you can always stay in the know. Dropped straight into your Inbox every week — and usually a 5-minute read.
Join us every Wednesday via Zoom for your weekly dose of insider DevOps trends, AWS news and Terraform insights, all sourced from our SweetOps community, plus a live Q&A that you can’t find anywhere else. It's FREE for everyone!
Preamble to the Apache License, Version 2.0
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
All other trademarks referenced herein are the property of their respective owners.
Copyright © 2022-2024 Cloud Posse, LLC