序文#
私はずっとフロントエンド開発に従事してきましたが、ある日突然バックエンド開発言語に精通したいと思いました。さっそく golang を見つけたので、使ってみましょう。
プロジェクトの開発は問題ありませんが、リリース時に個々の実行ファイルを手動でアップロードするのは面倒です。ちょうど GitHub アクションにも無料枠があるので、それを使いましょう。
goreleaser について#
goreleaser はさまざまなリリース方法を提供しており、GitHub アクションはその多くのサポートチャネルの 1 つです。もちろん、goreleaser もオープンソースであり、プロジェクトのアドレスはgoreleaserを参照してください。
GitHub アクションの設定#
goreleaser を GitHub アクションに統合するには、ほとんど追加の操作は必要ありません。以下の手順に従ってください。
- リポジトリに GitHub アクションのワークフローを追加し、ファイルパスを
.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アクションによって提供される操作トークンであり、自分で申請する必要はありませんが、追加の操作が必要です。以下を参照してください。
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
プロジェクトの設定で、GitHub アクションにパッケージの読み取りと書き込みの権限を付与する必要があります。これにより、ワークフロー内のトークンがリリースにファイルをアップロードできます。
- リポジトリにタグを追加し、GitHub にプッシュします。
git tag v0.0.1 && git push --tag
- これで使用できるようになりました。その後は、リリース内のファイルを確認するだけです。