2020年2月16日日曜日

GitHub Actionsのバージョン指定をセマンティックバージョニングに対応する方法

去年の年末から先週まで8週連続くらいGitHub関連の話ですが、懲りずに9週目に突入します。
来週は違うネタを書く予定です。

GitHub Actionsで使いたいactionを指定する場合、そのバージョンも同時に指定する必要があります。
例えばCheckoutを使う場合、
- uses: actions/checkout@v2.0.0
のようにタグ名を指定します。

でも「特定のバージョンをピンポイントで使うんじゃなくて、互換性がある最新のバージョンを使いたい」という場合がありますよね。

ありますよね?

actionがセマンティックバージョニングに対応している場合、メジャーバージョンだけ指定したいといったような感じです。

でもGitHub Actionsはセマンティックバージョニングでのバージョン指定に今のところ対応していないので、擬似的に対応する方法の紹介です。

その1: 常にメジャーバージョン用のタグを更新し続ける

Checkoutなど、GitHub Actionsが公式で提供しているactionで使われています。

v1.0.0がリリースされたらそのすぐ後にv1というタグを打ち、その後でv1.1.0がリリースされたらv1のタグを削除してあらためてv1.1.0のすぐ後に打ち直す、というやり方です。

わかりやすい反面、更新忘れがないように注意しないといけません。

その2: メジャーバージョン用のブランチを作成する

ところで、バージョン部分にはタグコミットハッシュブランチなどを指定できます。
つまり、git checkout等のコマンドで使えるできるものを指定できます。

ということは、いい感じにブランチを作ってやればいいんじゃないかと。

説明が面倒なので、詳しくは図を見てください。
バージョン1系のリリースはv1ブランチ上に、バージョン2系のリリースはv2ブランチ上に作っていけば擬似的にセマンティックバージョニング対応できるし、リリースのたびにタグを打ち直す必要もなくなります。

ブランチが完全に分かれているので、v2の修正をv1にバックポートするのも楽です。

Install SSH Keyは後者の方法を使っています。

0 件のコメント:

コメントを投稿