トップ «前の日記(2024/08/01 (木) ) 最新 次の日記(2024/08/03 (土) )» 編集 RSS feed

HsbtDiary


2024/08/02 (金) [長年日記]

all-ruby の定義追加を自動化した

色々のってきたので、どんどん自動化している。で、今日は all-ruby の定義ファイルの追加を自動化した。

https://github.com/ruby/all-ruby/blob/master/.github/workflows/update.yml

repository_dispatch はもうわかりきった話なので、今回新しい項目としては commit & push を workflow にやらせるところだった。これは secrets.GITHUB_TOKEN だとダメで、個々人の PAT を使えば良い。

これも ruby/ruby から curl で叩いて実行するようにしたので、今後は勝手に追加される。ただ docker image を作成する、というのは 3h 以上かかるので、まだ手元で実行しなくてはいけない。

この辺、github actions と docker の cache、multi stage build を駆使すればなんとかなるかなあ。ということで、akr さんに相談して、個人アカウントよりは色々使える余地が広い ruby/all-ruby として引っ越してもらった。どうせやるならできることを全部頑張りたい。

ruby-build の定義追加も自動化した

続いて、ruby-build の定義ファイル追加も自動化した。今まではリリースされた後に誰かが pull-req を追加して、僕などがマージ、リリースという手続きだったけど、これでリリースされたらすぐに追加される。

https://github.com/rbenv/ruby-build/blob/master/.github/workflows/update-ruby.yml

試しに、3.3.3 を消してから、curl で Ruby 3.3.3, OpenSSL 3.0.14 を指定したら追加されている様子。

https://github.com/rbenv/ruby-build/commit/d22fa95a6e4c77945304c16ebe0d9513fec98cfb

これで、ruby/ruby のリリースワークフローから、すぐにコミット自体は追加されるので、あとはそれを確認して人間がリリーススクリプトを実行する、ということで良さそう。

fastly の package cache の purge を自動化した

Ruby のリリースパッケージ、なぜかリリースする前から bot か何かによって ruby-3.3.4.tar.gz などが 404 の状態でネガティブキャッシュとして fastly に残っているので、毎回リリースされたら ruboty 経由でパージしていたのだけど、それらも actions で実行するようにしておいた。

https://github.com/ruby/ruby/commit/303d2319f04b7d46ad3dbf28035b83a06fdba5b3

自動化の鬼となって、あれこれ自動化し続けているけど、ruby のリリースに関しては残りは以下かなあ

  • www にリリースアナウンスを作る
  • GitHub の releases エントリを作る
  • all-ruby の image を作る

どれも技術的にわからんということはなくて、やるだけではあるのでやりきってしまおう。

Launchable メンバーと夕食

Launchable の川口さんが日本に来ているということで、ruby/ruby に導入している Launchable の使い勝手であるとか、Ruby 開発メンバーはこういう開発スタイルで CI の面倒を見ているというようなことを1-2時間くらいディスカッションしてきた。

MTG のあとは会議室の近くにある九州料理の店でおしゃべりしながら夕食。お疲れ様でした。