トップ «前の日記(2024/07/31 (水) ) 最新 次の日記(2024/08/02 (金) )» 編集 RSS feed

HsbtDiary


2024/08/01 (木) [長年日記]

Ruby の snap パッケージの作成を自動化した

リリース完全自動化の一環として、今まで手元でコマンドを実行して ubuntu が提供している remote-build で作っていた snap パッケージを GitHub Actions で全部作って、snapcraft store にアップロードまでを全自動でやるようにした。

https://github.com/ruby/snap.ruby/blob/master/.github/workflows/build.yml

また、今週やっている repository_dispatch も使って、ビルドしたい Ruby のバージョンを payload として渡せばそれで動くようにもしておいた。arm インスタンスが GA してないので、qemu 使ってビルドしている箇所がめちゃくちゃ遅いけど、それはしょうがない。2ヶ月に1回くらい1h使っても相対的には大した問題ではないだろう。

これができたところで、ruby/ruby のリリースワークフローからも curl で起動するようにしたので、今後はリリース後に勝手にアップロードまでは終わるはず。ただ、3.3/edge チャンネルというように試験用のチャンネルにしかアップロードしてないので、latest とか stable みたいなところへの公開は引き続き手作業かな。

snapcraft を CI で動かすためのトークンを払い出すには

$ snapcraft export-login --snaps ruby --channels edge --acls package_access,package_push,package_update,package_release -

みたいなコマンドを実行すると、今時点のログインセッションから token が払い出されるのだけど、上記のようにチャンネルとして edge を指定すると 3.3/edge みたいな track を指定したときに動かなくて、試行錯誤をしたところ無指定なら track をつけても動くというオチだった。この辺 document なくて辛い。

アイアンマンを見た

アベンジャーズをちゃんと見終えたということで、アイアンマンは見たっけ...という記憶だったので UNEXT などで無料で見ることができるアイアンマンを見た。

なんか見たことあるような...というストーリーではあったけど、序盤に出てきた会社の役員が、アベンジャーズのソノスの声優と同じで、「あー、こいつ絶対悪の親玉だ」という予想が当たってしまって、ちょっと面白かった。

アイアンマンの2と3は有料っぽいので、どこかのフライトで見るかなあ。まあレンタルしてもいいんだけど...。