GitHub Actionsへの移行

すっかり秋になり、お鍋が恋しい季節になりました。
どうもお久しぶりです、GMOアドマーケティング GMOSSP開発担当の@KazuakiMです。 GMOSSPでは最近、CircleCIからGitHub Actionsに移行した事から、その情報をお伝えできたらと思います。 GMOSSPでは配信をPHP、集計などをGo言語で実装している事から、 今回はPHPのGitHub Actionsの実装例となります。

そもそもGitHub Actionsとは?

継続的インテグレーション/継続的デリバリー(CI/CD)をGitHubが提供する環境内で実行できるサービスとなります。
GitHub Actionsを使用すると、ワールドクラスのCI / CDですべてのソフトウェアワークフローを簡単に自動化できます。 GitHubから直接コードをビルド、テスト、デプロイでき、コードレビュー、ブランチ管理、問題のトリアージを希望どおりに機能させます。
https://github.co.jp/features/actions
ベースイメージは下記を使わせて頂くことにしました。
  非常にドキュメントが整理されているため、困る事なくすすめる事ができました。
複数のPHPバージョンを利用した例を紹介致します。
イメージはPHP8.0を含む ubuntu-latest を使用します。 次にSetup PHPの設定を行います。Setup PHPではextensionsや主要なtoolsがすでに用意されているため、
インストールするための手順(pecl、composer)はほぼ不要になると思われます。 パスもすでに通っている事から、インストールされているコマンドを実行するだけで手軽にテストやLintツールなどを適用する事ができます。 GMOSSPではGitHubフローを採用しているため、masterにPRを出すとき、push時にテストを走らせたいです。また、リポジトリ内にはPHP以外にもTypeScriptがあるため、そちらの修正をした際にはCIを走らせたくはありません。そこで、 こんな感じでphp_src配下のみをテストするようにしました。

最終的な設定ファイル

所感

CircleCIからの移行は非常に容易でした。
使うイメージと実行内容に大きく左右されると思いますが、非常に軽量でスピーディな印象を受けました。

今後の予定

GitHub Actionsに移行はしましたが、チューニングの余地がありますので、引き続き改善していきたいと思います。