@kyanny's blog

My thoughts, my life. Views/opinions are my own.

GitHub Actions Certification への道 (4) Leverage GitHub Actions to publish to GitHub Packages

learn.microsoft.com

learn.microsoft.com

今回の演習もひどかった。

テンプレートリポジトリは https://github.com/githubtraining/exercise-publish-package

fork した自分用のは https://github.com/kyanny/automatic-octo-adventure

何が辛いって、README の instruction が薄すぎる。パッケージを publish する方法として、GitHub Actions ワークフローからやるべきなのか(GitHub Actions のコースなので当然そうであるべきだが)、コマンドラインから gem push とかそういうコマンドでやるのか、そこについてすら触れてない。

そして今回は README をアップデートしていく地獄のようなワークフローは組み込まれてなかったが、パッケージをリポジトリに publish できたら採点用のワークフローが動くという話なのに、一向に動かない。registry_package イベントでトリガーされるようになってるので仕様が変わってこのイベントがトリガーされないようになったのか?と思って webhook を仕込んで smee.io でイベントを監視するとちゃんと registry_package イベント(と package イベント)が送られている。よってワークフローもトリガーされるはず。だがされない。

トリガーされないのは GITHUB_TOKEN だからかと思ったが Personal Access Token で直 gem push ではイベント飛ばないのでなんでやねんと。

お手上げなのでいじるなと書いてある採点ワークフローとかをいじってどうにか動かそうとしたが、だめ。諦めて採点は飛ばした。採点ワークフローを workflow_dispatch で実行するとトラブルシュートできます、とあるけど実行しても空文字列が echo されるだけで、何か足りないのか?と思ってワークフローを読んでみたらマジで空文字列を echo してるだけで意味不明だった。何の役にも立たない。一体これのどこがトラブルシュートに役立つのだ。

採点されようがされまいが Microsoft Learn 側には影響ないので、普通に先へ進んでクイズをこなしたりしてモジュール完了。ちなみに仮に採点ワークフローがトリガーされたとしても、中で使ってる local-action を node12 で動かすことになってて node16 にアップデートしないと結局動かないはず。

ほんとに、こんなクオリティ低いものを堂々と公式リソース的に(githubtraining はすでに古いが)公開しててメンテもできてないのは恥ずかしい。