GitHub Actions でクロス・コンパイル(GoReleaser 編)
以前(3年前だ!)に Travis CI と GoReleaser でクロス・コンパイル&デプロイを行う方法を紹介したが,今回は GitHub Actions を使う方法を紹介する。 なお GoReleaser 自体の説明については(だいぶ内容が古いが)以下の記事を参考にどうぞ。
紹介と言っても公式の GitHub Action があるので,それを使えばよい。
リポジトリの .github/workflows/
ディレクトリに YAML ファイル(例えば build.yml
)を置き,以下のように記述する。
name: build
on:
push:
tags:
- v*
jobs:
goreleaser:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: 1.15
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v2
with:
version: latest
args: release --rm-dist
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
これでバージョンタグを打った際に GoReleaser によるクロス・コンパイルとデプロイが走る。 簡単!
ブックマーク
- Go で書いた CLI ツールのリリースは GoReleaser と GitHub Actions で個人的には決まり | tellme.tokyo
- goreleaserとGitHub Actionsを使えばGoのCLIはgit tagをpushするだけでGitHubとHomeBrewに自動リリースできる - My External Storage
- GoReleaser の設定のいくつかが DEPRECATED になっていた
参考図書
- プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)
- Alan A.A. Donovan (著), Brian W. Kernighan (著), 柴田 芳樹 (翻訳)
- 丸善出版 2016-06-20
- 単行本(ソフトカバー)
- 4621300253 (ASIN), 9784621300251 (EAN), 4621300253 (ISBN), 9784621300251 (ISBN)
- 評価
著者のひとりは(あの「バイブル」とも呼ばれる)通称 “K&R” の K のほうである。この本は Go 言語の教科書と言ってもいいだろう。