バージョン管理された人

subversionで管理されてます

GitHub Actions の self hosted runner を短命にできるようになった

v2.282.0--ephemeral というオプションがサポートされた。

これは1つのジョブを回したら self hosted runner を終了させるというように動作を変更するためのフラグで、今までは起動したらしっぱなしだった self hosted runner を短命な動作に変更させることができる。 これによって、例えば AWS の Auto Scaling Group で self hosted runner を起動し、ジョブを走らせたあとにすぐにインスタンスを終了させて新しいインスタンスを立ち上げる、みたいなことができるようになった。 つまり、 Self hosted runner でべき等性を確保できるようになった。

しかも、走り終わったら自動で self hosted runner の登録の解除もやってくれる。 そのため、 Runner の設定ページに大量の削除待ちのオフライン runner を見なくてもいい。

今まではそのようなことはできず、 Self hosted runner を立ち上げたら立ち上げっぱなしにするしかなく、各ジョブによるパッケージなども Docker などを利用しなければ共有せざるをえなかった。

例えば、ワークフロー W のジョブ J 内で yum install -y git なぞしようものなら、 W 内の J 以外のジョブや、果ては同じ runner で走ってしまった W 以外のワークフロー内の全てのジョブにも git がインストールされた状態で走ってしまっていた。 これによって、ある時点ではパッケージが使えるが、インスタンスが再起動されて新しい環境が立ち上がると、 git がインストールされてないことでジョブが動かなくなる、なんてことも起こる可能性があった。

しかし、このオプションのサポートによって、適切にインスタンスを終了し新環境を立ち上げるようにすれば、各ジョブにおけるそのような不適切な共有を避けることができるようになるだろう。