リリース完全自動化の一環として、今まで手元でコマンドを実行して 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は有料っぽいので、どこかのフライトで見るかなあ。まあレンタルしてもいいんだけど...。