序文#
私はずっとフロントエンド開発に従事してきましたが、ある日突然バックエンド開発言語を習得したいと思いました。さっそく golang を見つけたので、使ってみることにしました。
プロジェクトの開発は問題ありませんでしたが、リリース時に個々の実行可能ファイルを手動でアップロードするのは面倒でした。ちょうど github action にも無料枠があるので、それを使いましょう。
goreleaser について#
goreleaser はさまざまなリリース方法を提供しており、github action はその多くのサポートチャネルの 1 つです。もちろん、goreleaser もオープンソースであり、プロジェクトのアドレスはgoreleaserをご覧ください。
Github Action の設定#
goreleaser を github action に統合するには、ほとんど追加の操作は必要ありません。以下の手順に従ってください。
- リポジトリに github action のワークフローを追加します。ファイルパスは
.github/workflows/release.yml
です。
# 名前を定義
name: Release
# タグをプッシュするときにトリガーされる、v*にマッチする
on:
create:
tags:
- v*
jobs:
release:
name: Release on GitHub
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- run: git fetch --force --tags
- uses: actions/setup-go@v4
with:
go-version: stable
- uses: goreleaser/goreleaser-action@v4
with:
distribution: goreleaser
version: latest
args: release --clean
# secrets.GITHUB_TOKENはgithub actionに組み込まれた操作トークンで、自分で申請する必要はありませんが、追加の操作が必要です。詳細は以下を参照してください。
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
プロジェクトの設定で、github action にパッケージの読み書き権限を与える必要があります。これにより、デフォルトのワークフロー内のトークンがリリースにファイルをアップロードできるようになります。
- リポジトリにタグを追加し、github にプッシュします。
git tag v0.0.1 && git push --tag
- これで使用できるようになりました。その後は、リリース内のファイルを確認するだけです。