Diary of a Perpetual Student

Perpetual Student: A person who remains at university far beyond the normal period

GitHub Actions

GitHub ActionsのGoのバージョンをtoolchainディレクティブの指定ぴったりで固定したい場合

blog.arthur1.dev 以前公開したGoのバージョン指定・更新に関するブログで、GitHub Actionsのsetup-goについてこんなことを書きました。 stableを指定しておけば、大体の場合(最新に保った)toolchainディレクティブ以上のバイナリを最初から用意してくれる…

ベロシティ向上を目指してCIやテストの再整備をしている

チームが抱えていた CI テストに関する課題 最近、GitHub Actions で実行しているテスト、とりわけ Scala のプロダクトコードのテストに関連する様々な問題が原因で、チームの生産性が下がっているほか、Scala のコードを改修することへ抵抗感を覚えてしまっ…

GoReleaser を使って Homebrew でインストール可能な CLI ツールを公開する時にも GitHub Apps トークンが使える

3行 GoReleaser を使うと、作ったツールを Homebrew でインストールするための formula を書き出してくれて便利 GitHub Actions でこれを行う際、GitHub の PAT が必要とされているが、代わりに GitHub Apps トークンも使える PAT を利用する方法と比較して…

docker build 時に private リポジトリから go get する

要件 Go 言語で作られた、GitHub の private repository の go module に依存しているアプリケーションについて考えましょう。例えばオープンソースではない社内ライブラリに依存している、という状態です。 手元の開発マシン上では GOPRIVATE 環境変数を利…

lambroll を GitHub Actions で動かすときには明にバージョンを指定しよう

3行 lambroll を GitHub Actions 上で実行するには fujiwara/lambroll@v0 が使える input に lambroll の version があるが必ず明に指定しよう そうしないと、default 値として古い lambroll で動いてしまう - uses: fujiwara/lambroll@v0 with: version: v0…

GitHub Actions の ::set-output 脱出 上級編 便利ツールでカバーできないケース

::set-output 脱出 進んでますか? github.blog エンジニアで GitHub Actions を利用している人はだいたい知っているであろう、 ::set-output や ::save-state の非推奨化問題。このコマンドを利用していると2023年5月末にはエラーになってしまう予定となっ…

GitHub Actions の workflow の lint を Github Actions で動かす

GitHub Actions で色々なコードの test や lint を動かしていると思います。 その際に workflow を yml で定義するのですが、この workflow ファイルはちゃんとチェックしてますか? 「見よう見まねで yml を書いて push したけど、キー名が間違っていて動か…

Jest で落ちたアサーションを GitHub のアノテーションに出す

最近 GitHub Actions を弄くり倒すことにハマっていて、 GitHub の Checks API を利用して annotation を出すおもてなしをすることだけが生きがいだと思って生活していました。 そんな中、JavaScript (TypeScript) のコードのテストでよく使われている Jest …