2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【2023年版】CircleCI で GitHub プロジェクトをビルド&テストする

Last updated at Posted at 2023-09-11

本記事で説明すること

CircleCI アカウント(Free プラン でももちろんOK)を作成した後、ご自身の GitHub プロジェクトを CircleCI でビルド&テストする方法をご紹介します。

はじめに

【2023年版】CircleCIにサインアップ(Sign up)に説明した方法で CircleCI アカウントを作成したら、次は、GitHub プロジェクトをビルド&テストしてみましょう(サンプルでご紹介するのは Python プロジェクトなので、正確にはビルドはしていないのですが)。

CircleCI で GitHub プロジェクトをテストする

1. 前準備

スムーズに作業を進めるため、次の準備をしておきましょう。

2. CircleCI アカウントに GitHub アカウントを接続

【2023年版】CircleCIにサインアップ(Sign up)に従ってCircleCI アカウントを作成したばかりであれば、次のようにバージョン管理システムへの接続画面が表示されているかと思います。

また、アカウントはすでに作成済みということであれば、CircleCI ウェブアプリ(https://app.circleci.com)にアクセスしましょう(ログインが必要であれば、Login with Email からログインしてください)。(CircleCI でプロジェクトを未設定であれば)次の画面が表示されます。

Screenshot_2023-09-08_at_18_50_30.png

いずれの場合でも、画面上の GitHub の右にある[Connect (接続)]ボタンをクリックすると、GitHub の画面に遷移します。

Screenshot_2023-09-08_at_18_51_18.png

Install & Authorize CircleCI App (CircleCI Appをインストール、認証する)という画面が表示されるので、[Install & Authorize(インストール、認証する)]をクリックします。次に Project (プロジェクト) 画面が表示されます。

3. GitHub プロジェクトを CircleCI プロジェクトとして登録

Project 画面から[Create Project (プロジェクトを作成)]ボタンをクリックします。

スクリーンショット_2023-09-08_22_40_25.png

すると、Create New Project (新規プロジェクトを作成) 画面が表示されるので、Connect to (接続先) に GitHub.com を選択し、[Connect (接続)]ボタンをクリックします。

スクリーンショット_2023-09-08_22_41_09.png

GitHub に接続すると、画面表示が下のように変わります。Private SSH key にはSSH 秘密鍵の内容を貼り付けます。また、Repository には前準備で自分のレポジトリに fork しておいた cci-pytest プロジェクト(あるいは、自分が使いたいプロジェクト) を指定します。.circleci/config.yml ファイルが存在する場合、下のスクリーンショットのように、その旨、表示されます(.circleci/config.yml found)。また、Project Name (プロジェクト名) もここで指定します。リポジトリ上の名前をそのまま使用することも、別の名前を使用することも可能です。

スクリーンショット_2023-09-08_22_43_18.png

ここまで指定したら、[Create Project (プロジェクトを作成)]をクリックしましょう。

4. コンフィグファイル(config.yml) を編集し、テストを自動実行する。

それでは、前準備でローカル環境に clone しておいたプロジェクトを見てみましょう。

スクリーンショット_2023-09-10_14_57_51.png

Python で書かれたテストファイルが用意されており、テスト所要時間に対応したファイル名が付けられています(例えば、fifteen_second_test.py はテストに15秒かかる)。したがって、ここにあるテストを全て実行するには、15秒+50秒+5秒+40秒+100秒+60秒+10秒+30秒+20秒 = 330秒 かかると見込まれます。

一方、config.yml ファイルの8行目に parallelism (並列実行数) を指定する箇所があるので、ここに、1 や 3、5といった数字を指定して、config.ymlの内容を保存し、commit した後、GitHub.com に push しましょう。push されたタイミングで、この config.yml 上で指定された自動化手順に沿ってテストが実行されます。

さいごに

CircleCI を使った GitHub プロジェクトの自動テストを実行してみて、いかがだったでしょうか?

並列度を上げることで、どれだけテスト完了までの時間が短縮されるか、および、並列度を上げても必ずしも(大幅に)消費クレジットが増加しているわけではないことを示したのがこちらの図です。

20230913-自動化→部品化すると社内開発は楽しくなる.png

ぜひご自身でも並列数を変えてみて、また繰り返し実行してみて(並列実行時のテストの割り振りは過去のテスト実行時の所要時間をもとにしているので)、必要に応じてテストを再構成してみて(現在のままでは、100秒かかるテストケースを分割等しないと、並列数を上げてもテスト完了時間が100秒を切ることはないため)、CircleCI を使った自動テストの効果を実感していただければと思います。Happy Building & Testing!

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?