Github Actions で CPANアップロードまでやってみた
きょうは 2020/02/02 ですね。なんかめでたい!
さて、Perlモジュールの開発において、github で master マージしたら CI から直接 CPANアップロード!なんて夢を誰もが一度は見ているかと思います。なんか自分も思いついてみたので Github Actions の事例をメモしておきたいと思います。
- github actions では git branch の結果が空
- HOME とカレントディレクトリは別
- Changesは捨てた
- Tagどう打てばええんやろ
- Next/release version?
Github Actions では git branch の結果が空
これはCPANizeにはあまり関係ありませんが、Coverallsにカバレッジを投げる際に branch名を取得しようとしてはまりました。Github Actions では git branch
コマンドの出力は空になるようです。かわりに GITHUB_REF という環境変数が用意されているのでそこから branch 名を取得しました。Coverallsにブランチ名を正しく伝えられないと、特に master ブランチの場合ですが、バッジ画像が UNKNOWN になって残念な感じです。
HOME とカレントディレクトリは別
考えてみれば当然ですが、PWD してみるまで気づきませんでした。環境変数 HOME も用意されていますが、CLIツールにファイル経由で設定を渡す場合、ファイルがどこにレイアウトされていなければいけないか注意が必要です。
Changesは捨てた
CIからCPANアップロードする場合に、Changes をどうしようかやる前から思ってたのですが、いったん捨てました。理由は Changes に含まれる情報に git log で見れるものと差が大きくないと考えたからです。Changes は、githubでのコミットヒストリーへのリンクで良さそうで、SPECIAL THANKS 的なものは専用のファイルに書くのが良さそうというのが今考えているところ。
Tagどう打てばええんやろ
Deploy Key 使えばいいと思うんだけど、githubならショートカットなんか出してくれないかなって期待してるステータス。でもたぶん CI は外にあるべきものだろうから何も出てこない気もする。
Next/release version?
いまのところ、ShipIt を CPAN distのフレームワークとして使っているのだけど、versionあげるのにインタラクティブなプロンプトにバージョン文字列で応える必要があって困ってる。この壁がいま最後の壁といった感じ。他のやりたい要素は洗練されているかはさておき実現できているのだけど、version upがちょっと壁が厚くて足踏みしてる。
以上、テストで使ったモジュールは Acme::BayaC , Github Actions の workflow ファイルはこちら