天の月

ソフトウェア開発をしていく上での悩み, 考えたこと, 学びを書いてきます(たまに関係ない雑記も)

自動化と効率化のためにGitHub Actionsを使いこなそうに参加してきた

devops-study.connpass.com

こちらのイベントに参加してきたので、会の様子と感想を書いていこうと思います。

会の概要

以下、イベントページから引用です。

GitHub ActionsはただのCI/CDツールではなく、GitHubを中心とした開発の効率化にも役立ちます。 今回は、少し踏み込んでマトリックスビルドやキャッシュの活用、イベント駆動型のワークフローなどの応用的なテクニックについて紹介します。

会の様子

田中さんの講演

GitHub Actionsの簡単な説明

GitHubのIssueなどと連携しやすいというメリットや、コンポーネントやジョブ、アクション、ランナーといったGitHub Actionsの簡単な説明がありました。

アクションの危険性

アクションは誰でも公開できるため、悪意のあるコードが混入している可能性もあり、検証済み作者バッジを確認したり、アクションのチェンジログやリリースノートを地道に確認することが重要だということでした。

料金

パブリックリポジトリであれば無料で、プライベートリポジトリに関してはプランごとにストレージと月あたり使える分数が決まっているという話がありました。

Pushだけじゃないイベント駆動

GitHub上のサービスをトリガーにできるので、IssueやPRの作成をトリガーにすることもできたり、スケジュールによってワークフローを実行することもできるという話がありました。

具体的には、PRの作成時に自動でラベルをつけたりIssueの作成時に自動でラベルをつけたり、非アクティブなIssueやPRを自動クローズするような設定ができるということです。

マトリックス

1つのジョブを並列に処理することができるという話がありました。
並列化には、与えられた配列に基づいてジョブを並列に実行するような静的な並列化、配列を動的に生成してジョブを並列実行するような動的な並列化の2種類が解説されました。

なお、実行時間に関して、並列実行したジョブそれぞれの実行時間が月の実行可能時間として計測される点には注意が必要だという話がありました。

キャッシュを使った高速化

ワークフローを高速化するためのCacheアクションに関して説明がありました。

キャッシュは便利な反面、システムワイドにインストールするようなツールとの相性はいまいち(パスの設定が面倒)なので、いっそのことコンテナ化してしまうのがおすすめだということでした。

Q&A

講演の後はQ&Aがありました。

以下、質問と回答を一問一答形式かつ常体で記載していきます。

GitHub ActionsにてWindowsが使用できるのは初耳だったのだが、利用できるOSはWindowsServerシリーズか?

その通り。Server Coreとかを使っている。

GitHub Actions初心者は何から手をつけるとよいか?

CIとかテストから入るのがやりやすいとは思う。公式チュートリアルに関してはちょっと分かりにくい。

ただし、チーム開発のイメージがないと上手く活用できないので、業務分析みたいなところから入ったほうがいいとは思う。

AzureDevOpsでも同じようなことはできるのか?

GitHub Actionsの方が便利機能が多いので、GitHub Actionsのほうがおすすめ。

AzureDevOpsのチュートリアルでも最初にGitHubのアカウントを作るように言っているところから察した方がよい。

actは使ったほうがよいのか?

ある程度ワークフローが動く状態になってから使うようなイメージ。使えるなら使ったほうがいいと思う。

会全体を通した感想

ちょっと踏み込んだ話ということで、基本的な話だけではなくやや細かい部分の説明を実際のコードを交えながら説明してくださったのがよかったです。

並列化の際の料金計算の話などは特に気をつけたいなあと思いました。