今回のとことんDevOps勉強会では「これから始める継続的インテグレーション - GitHub Actions編」と題しまして、CIツールであるGitHub Actionsを使って継続的インテグレーションを実現するための基礎知識について紹介いたしました。CircleCIと比べてどこが違うのか、どういう時にどちらを選ぶべきかといったことや、GitHub Actionsのワークフローを動かすための設定の記述方法やその際の勘所などを紹介しました。
振り返りも兼ねて当日の配信の様子をYoutubeでアーカイブしていますので、是非ご覧ください。当日参加できなかった方も、これを機会にとことんDevOps勉強会に興味を持っていただければと思います。また、当日いただいたQ&Aに関してもこちらのブログでまとめていますので、ぜひご覧ください。
セミナー動画 YouTube Live アーカイブ
発表資料 - SpeakerDeck
Q&Aまとめ
Q: まぢかー (ワークフローの時間計算は)1分以内に概ねおわるけど全部1分扱いだったのか…
A: 1分未満のワークフローを実行しても切り上げで1分で計算されます。そのため、1秒のワークフローをなん度も実行すれば1分単位で追加されていきます。ただし、Freeプランでも2,000分ありますので、そこまで気にする必要はないと思います。
Q: actは初期段階と異なり、かなり動きが良い感じ
A: 私はこの1年ぐらいしか使っていないので、過去の状況はわかりませんが、いつからあったのでしょうか?
(参加者様のコメント)
actですが、少なくとも2019年にはあったようです https://stackoverflow.com/questions/59241249/how-to-run-github-actions-workflows-locally
Q: actでワークフローを実行するとGitHub Actionsの時間は消費されますか?
A: GitHub Actionsのワークフロー実行をローカルで実行できるようにするためのものなので、GitHub上で実行するわけではありません。そのため、時間が消費はされません。
Q: AWS連携したecr docker pushとかworkflow作るのが結局難しい。この辺はCircleCIも同様ですか
A: CircleCIでも認証周りとかを設定しなければならないので、手間がかかる点は同様です。
Q: GitHub ホステッド ランナー、毎回クリーンになってしまうということは、追加ツールも毎回インストールし直しなのか〜
A: はい。毎回クリーンになり、追加ツールも毎回新規インストールになります。逆にそのおかげで、以前使った環境のゴミによってテスト環境が変わってしまうといったことがなくなります。
Q: デプロイまでのworkflowの具体例のところまでできれば知りたいです
A: GitHubなどでワークフローの例などがあるので、それを参考にすると良いと思います。
(追加情報)以前のブログでデプロイに関する記事がありましたので参考にしてください。
Q: CIOpsとGitOpsの違いについて教えてください
A: CIOpsはGitHub ActionsやCircleCIといったCIツールからデプロイを行うという考え方です。一方GitOpsはArgoCDやFlux V2などのGitOpsツールを使ってGitリポジトリの変更を検知してデプロイを行う方式です。
GitOpsではGitリポジトリとKubernetesの状態が一致しているので、Gitを確認すればKubernetesの状態がわかるというメリットがあります。GitOpsに関しては過去の勉強会で詳しく説明しているので、そちらをご覧ください。
Q: .github/workflows/ に登録した aaa.yaml を 別の bbb.yaml から呼び出せるのでしょうか?
A: 可能です。今回のデモで使用したリポジトリでもあるYAMLファイルから別のYAMLを呼び出す例があります。こちらの".github/workflow"にあるhello.yamlからgoodbye.yamlを呼び出す例がありますので、参考にしてみてください。