IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

Ruby on Rails 海外事情コラム

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第50回 GitHubアクションを使用したRails CIパイプラインの構築 (野田貴子) 2019年12月

こんにちはー。野田貴子です。 近年はビジネスの素早い変化に対応できる開発体制が求められ、DevOpsがトレンドになっていることはみなさんご存じだと思います。今回はそのDevOpsを支える技術の1つであるCI/CDについて、以下のブログ記事をご紹介いたします。

GitHubアクションを使用したRails CIパイプラインの構築
https://boringrails.com/articles/building-a-rails-ci-pipeline-with-github-actions/

GitHubアクションは、GitHubのリポジトリ内から直接実行できる新しい自動化プラットフォームです。

GitHubアクションを使うと、あらゆる種類のイベントによってトリガーされるワークフローを構築できます。これらのワークフローは、「ジョブ」として任意のコードを実行します。また、複数の「ステップ」をつなぎ合わせれば、ほとんど何でも実現することができます。

この新しいプラットフォームの一番明らかな使い道は、プルリクエストごとにLGTMの画像を自動的に投稿することではなく(冗談です)、テストCI/CDパイプラインを構築することです。

途中詳しい話は省略します。

GitHubアクションによって、GitHub 1つでプロジェクトのソースコード、イシュー対応、プロジェクト管理、コードレビュー、セキュリティ検査、そして今、CI/CDテストができるようになりました。1つのアカウント、1つのサービス、1つの場所で。

ほとんどの方は、おそらくthoughtbotのブログ記事に基づいてプロジェクトの初期にCircleCIをセットアップし、それ以降CIには触れていないことでしょう。私もです。

しかし、心配する必要はありません。CircleCI 2.0の構成からGitHubアクションの構文に移行するのは簡単です。

両者の違いと移行方法は省略します。リンク先参照してください。

GitHubアクションは、このコミュニティのデフォルトになるに値する魅力的な選択肢となるでしょう。GitHubをリポジトリ、イシュー対応、ビルドサーバーのためのワンストップの場所にするのは理にかなっています。CircleCIのような外部サービスが1つ少ないだけで精神的なオーバーヘッドが少なくなりますし、統合作業抜きで迅速にシステムを公開し顧客の問題を解決することに集中できるため、セットアップが「退屈な」ものになります。

しかし、ポイントは、今後「そうなるでしょう」というところです。中規模のアプリケーションでさえ、CirceCI(あるいは他の似たようなプラットフォーム)で既にセットアップされている場合は、依存関係キャッシュの欠如は克服するのに非常に大きなハードルです。Railsテストスイートは非常に遅いことで有名です。フレームワークレベルで改善され続けているため、開発チームがGitHubアクションへの移行のためにビルド時間に20〜50%の追加コストを支払ってくれるかどうかはわかりません。

私はもし新しいプロジェクトを開始するならばCircleCIを選びますが、GitHubアクションが上述した問題を解決できたら、絶対にGitHubアクションに移行してこれをデフォルトのCIサービスとして使用し始めるつもりです。

ビルド時間にあまり関心がない方、またはビルドのキュー/待機を大量に処理している(有償ツールを使えない)方には、GitHubアクションは既に合理的な選択肢であり、すぐに切り替えるのに問題はありません。


元の記事にはさらに詳しい説明が書かれていますので、ぜひ参考にしてください。 https://boringrails.com/articles/building-a-rails-ci-pipeline-with-github-actions/
※本コラムは上記の元の記事を筆者の独自の見解で意訳したものです。

 


 

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes