Rso's Jotter

日々の開発の知見のメモやその他雑記

Github Action 触ってみた感想

最近正式サービスとして公開された Github Action触っていくつかワークフロー作ってみたので、 その感想をメモしておきます。

help.github.com

Github Action とは

Githubが提供するCI/CDの仕組み。 今まではCircle CI とか外部のサービスと連携しなければできなかったところが、Githubだけで完結できるようになりました。

試した動機

今までCircle CIを使用しており、特に不満があったわけでないですが、Github で管理しているから CIも別にGithubでいいかなと思ってとりあえずやってみました。

作ったワークフロー

  • develop/masterブランチにPushされたらDockerイメージをビルドしてAmazon ECRにPushするジョブ
  • Kubernetesの設定ファイルが更新されたら、 kubectl apply -f xxx を実行するジョブ

所感

  • Dockerイメージのビルドのジョブ作成はすごく簡単でした。提供されているサンプルのyamlをちょっといじるだけで作成できました。リファレンス読まなくてもいけるレベル。
  • HCLからyamlへの移行の影響が結構辛い。ググって出てきたexampleの過半がHCLで書かれているので、入門する人にはちょっと面倒だと思います。これは時間がたてばどんどんyamlになっていくと思います。またAWSへ接続するためのサンプルコードの多くがDeprecated のリポジトリのコードを参照していて、どうしたらいいの?と言う感じになるケースもありました。

github.com

  • ちょっとGithub Actionの動作が不安定。あれ、動いてないな?と思って調べたら、Github status 見ると Degrated になっていた 、と言うのが何回かありました。これも時間が経てばもっと安定するのかなと思っています。
  • 外部からワークフローを起動できる repository_dispatch が便利(まだpreview period ですが)。 APIサーバのコードを更新したら、Kubernetesのconf 用のリポジトリのワークフローを呼び出してジョブ起動みたいなことができます。リポジトリ間の連携がやりやすいのかなと思いました。
  • いろんなActionが公開されていて、再利用できます。 自分も新たなアクションを作って、公開できます。他の人の作ったActionを再利用したりFolkできるのは、Githubならではかと思いました。
  • (キャッシュのきかし具合など、ジョブの実行速度に関しては今回比較できず。)

まとめ

正式サービスインしてまだ時間も短いため、動作が不安定だったり情報が少なかったり、やりづらい点もあるかと思いますが、Githubにメインでコード管理していれば、試すのはアリだと思います。