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