いけむランド

はてダからやってきました

レシピのテストと orphan branch

パッケージ作成のレシピファイル (cygport, rpm spec, ebuild など) のテスト (CI) と git の orphan branch は相性が良いんじゃないかと思いました。

レシピファイルのリポジトリには基本的にレシピファイル (とビルドに必要なパッチファイルなど) しか置きたくないわけですが、CI でテストしようとすると、CI をするためのコンテンツも置かないといけなくなって、場合によってはそれらの量の方が圧倒的に多くなってしまい、あまりスマートじゃない感じになってしまいます。

そこで CI 機構自体は別のリポジトリで用意して、レシピファイルの commit / push のイベント駆動でレシピファイルをテストする仕組みにするのが良さそうとは思っていて、実際に Cygwin の公式パッケージでは scallywag というツールでパッケージの CI をしています。

cygwin.com

cygwin.com

Cygwin ではレビュー前のパッケージはそのパッケージ用の git repository が準備されていないため playground repository を使って、CI でテストすることになります。

この playground は本当にみんな適当に commit / push したり、branch をふっとばしたりしてるようなのですが、操作のタイミングが複数人でかぶると、とてもめんどくさそうですし、自分が使いたい度に前に使ってた人のレシピファイルを消すのもなんだかなあと思ってしまいます。

そのため、こういう場合は orphan branch を都度つくることで安全に作業できるパターンになると思います。

qiita.com

ちなみにちょうど覗いたタイミングで playground は以下のような感じでした。(昨日と今日で master が全然違うものになってました。)

f:id:fd0:20210526225949p:plain
orphan branches