40a711ab88
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
50 lines
1.5 KiB
YAML
50 lines
1.5 KiB
YAML
# 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
|