2020/03/01

github から CPANモジュールを直接 ShipIt

ひと月くらい前に、Github Actions から CPANに直接アップロードをしてみた記事を書いた。

Github Actions で CPANアップロードまでやってみた

そのときは、master にマージしたらアップロードする感じにしようとしていたんですが、その後あれこれ試行錯誤した結果、tag を打ったら CPAN アップロードすることにして、それなりにメンテしているモジュールにフローとして投入してみた。

以下のような普通の感じ。

  • master は直接 push しない
  • 各ブランチで開発をして master にじゃんじゃんマージ
  • bump version もブランチで済ませて master にマージ
  • リリース用にタグ打ったら Github Actions から CPAN UPLOAD

手元で ShipIt する場合だとたぶん master を push する感じにするんじゃないかと思うんですが、この方法だと bump までマージしたあとにおもむろに tag を打って、それをトリガーに CPANアップロードまでやる感じになります。手元の操作が増えているけど、master 直接 push しないので良いとか、そのことによりリバートしやすいとか、bump はコマンド一発でブランチプッシュまでやる(ようにした)ので手間は感じないとかそんな感じに落ち着きました。たぶん一番大きいポイントは

git 操作だけで CPAN アップロードまで終わる

です。

あとはCPANアップロードするフロー自体がそのモジュールの git 管理下に入って明快というのもあります。手元に環境を用意する必要もありません。その代わりに、PAUSEアカウントのメール、ID/PASSWORD を github 上で secret に登録する必要があり、また複数人でモジュールをメンテナンスする場合はさらに工夫が必要になります。そのあたりが都合つくならやってみる価値はあるかもしれません。

CPANアップロードを実施する Github Action はこんな感じ です。

やってみた感じだと、.gitignore とか MANIFEST.SKIP あたりがはまりどころかと思われる。

サイト内検索