✨
GitHub Actionsでリリースノートを自動生成・バイナリのアップロード
TL;DR
下記の yml で可能
name: Release
on:
push:
tags:
- "v[0-9]+.[0-9]+.[0-9]+"
jobs:
release:
runs-on: ubuntu-latest
permissions:
contents: write
env:
VERSION: ${{ github.ref_name }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: "1.22"
- run: |
go build -o "${RUNNER_TEMP}/main" main.go
- run: |
gh release create "${VERSION}" --title "${VERSION} のリリースノート" --generate-notes
gh release upload "${VERSION}" "${RUNNER_TEMP}/main"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
解説
セマンティックバージョンに沿ったバージョンの tag の push を元に Action を実行します。
on:
push:
tags:
- "v[0-9]+.[0-9]+.[0-9]+"
リリースノートを作成するための権限を付与します。
permissions:
contents: write
設定された tag の情報を取得します。
env:
VERSION: ${{ github.ref_name }}
アップロードするバイナリ作成のため Go 言語の環境をセットアップしてビルドします。
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: "1.22"
- run: |
go build -o "${RUNNER_TEMP}/main" main.go
リリースノートを自動作成し、ビルドしたバイナリを upload します。
GitHub のトークンも必要なので取得しています。
- run: |
gh release create "${VERSION}" --title "${VERSION} のリリースノート" --generate-notes
gh release upload "${VERSION}" "${RUNNER_TEMP}/main"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Discussion