Github action to create release notes
When a new tag is pushed (and mirrored to github), this github action generates release notes, and creates a draft release which can be published via the github UI after any manual verification or edits. An example draft release, generated using act [0] is available for review for those with sufficient access: https://github.com/airshipit/airshipctl/releases This could be extended in the future to accomplish other release tasks: - add version-tagged image to quay - integrate with goreleaser[1] (publish go binaries) - publish documentation [0]: https://github.com/nektos/act [1]: https://goreleaser.com Change-Id: Iedb70b0c330df0356fa74d94c1d4a45c3343cc2e Relates-To: #354 Closes: #390
This commit is contained in:
parent
f2e305a56d
commit
40a711ab88
49
.github/workflows/release.yaml
vendored
Normal file
49
.github/workflows/release.yaml
vendored
Normal file
@ -0,0 +1,49 @@
|
||||
# Licensed 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
|
||||
#
|
||||
# http://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.
|
||||
|
||||
name: release
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- 'v*'
|
||||
|
||||
jobs:
|
||||
release:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Download release notes utility
|
||||
run: npm install github-release-notes -g
|
||||
- name: Generate release notes
|
||||
run: |
|
||||
gren changelog --override --generate \
|
||||
--username airshipit --repo airshipctl \
|
||||
--changelog-filename release-notes.md \
|
||||
--token "$GITHUB_TOKEN" \
|
||||
--tags "$TAGS" \
|
||||
--debug
|
||||
cat release-notes.md
|
||||
env:
|
||||
TAGS: ${{ github.ref }}
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Create release
|
||||
id: create_release
|
||||
uses: actions/create-release@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
tag_name: ${{ github.ref }}
|
||||
release_name: ${{ github.ref }}
|
||||
body_path: release-notes.md
|
||||
draft: true
|
16
.grenrc.js
Normal file
16
.grenrc.js
Normal file
@ -0,0 +1,16 @@
|
||||
module.exports = {
|
||||
"ignoreIssuesWith": [
|
||||
"duplicate",
|
||||
"invalid",
|
||||
"not needed",
|
||||
"question"
|
||||
],
|
||||
"template": {
|
||||
"issue": "- [{{text}}]({{url}}) {{name}}",
|
||||
"release": '{{body}}',
|
||||
},
|
||||
"groupBy": {
|
||||
"Enhancements:": ["enhancement"],
|
||||
"Bug Fixes:": ["bug"]
|
||||
}
|
||||
};
|
Loading…
Reference in New Issue
Block a user