2019年8月21日水曜日

新しい GitHub Actions に移行しました


GitHub Actions now supports CI/CD, free for public repositories


新しい GitHub Actions が使えるようになっていたので、
iutest のワークフローを 旧 GitHub Actions から移行しました。
migrate github actions by srz-zumix · Pull Request #274 · srz-zumix/iutest

HCL な main.workflow から YAML への変換
以前の GitHub Actions は HCL というフォーマットを採用していましたが、新しい GitHub Actions は他の CI サービスと同様に YAML での configuration になりました。
HCL だとどう書くんだろ?といちいち調べる手間が減るので地味に嬉しい変更です。
ただここで、HCL で書かれた workflow を YAML に直す手間が必要になるのですが・・・



さすが GitHub 、ちゃんと Migration tool を用意してくれていました!
Migrating GitHub Actions from HCL syntax to YAML syntax - GitHub Help

手順は至って簡単で、
ツールをダウンロード・展開したら、目的のリポジトリ下でツールを実行するだけです。
(ブランチ切り替えとかも含めて丁寧に説明されていますので、手順は上のリンクから確認してください)

手順どおりに行えば一瞬で移行が完了します。



自動変換後に調整したこと
ジョブを分けた


以前の GitHub Actions ではアクションごとにステータスがついていたのですが、新しい GitHub Actions でジョブごとにステータスがつくようでした。
変換した YAML ではアクションがすべて 1つのジョブにまとめられていたので、前と同じステータス通知になるようにジョブを分けました。
https://github.com/srz-zumix/iutest/pull/274/commits/b9cbdc04b6620c210e03c10085ec949092e94e9d


チェックアウト
ジョブを分けたら、それぞれにチェックアウトステップが必要でした。
各ジョブの steps に 「uses: actions/checkout@master」を追加しましょう。

steps:
    - uses: actions/checkout@master


通知設定の変更
新しい GitHub Actions になったからなのか、いつぞやからかメールで通知が来るようになっていたので無効化しました。
https://github.com/settings/notifications を開くと「GitHub Actions」の項目があるのでそちらで設定します。


「Web」にすると、GitHub の右上のベルマークのところに通知が飛ぶようになります。



変わったこと
新しい GitHub Actions に変わって大きく変わったのは
* YAML になったこと
* Windows / Mac OS が使えるようになったこと
でしょうか。

Windows や Mac OS でのテストは現在は他の CI サービスを使っているので、近々で試すことはないかもしれませんが、これらをサポートする CI サービスもだいぶ増えた印象です。
各 CI サービスがどの OS を使えるか、以下のリポジトリで個人的にまとめているので興味がある方はどうぞ。(PR お待ちしてます)
https://github.com/srz-zumix/ci-specs/blob/master/README.md#build-environment

最後に
2019/8/23 追記
ドキュメントにはまだ書かれてないようですが、すでにバッジをつけることはできてましたmm
ブログズミ: [GitHub Actions] 公式 Badge を付ける

早くバッジください

0 件のコメント:

コメントを投稿