はじめに
- 本記事は、2019年11月13日にGitHubから正式リリースされたGitHub Actionsを用いて、CIを実践する方法について、まとめたものです。
- 本記事で掲載しているGitHubの操作画面は、2020年3月11日時点のものになります。
CIとは
- 継続的インテグレーション(Continuous Integration)の略称です。
- インテグレーションとは、各人が作成した製作物を1か所に集め、ビルドとテストを行うプロセスのことです。
- 継続的インテグレーションとは、「定期的・自動的」にインテグレーションを行う仕組みのことを指します。
【インテグレーションの要素】
- すべてのソースコードを1か所に集める。
- ビルドを行う。
- テストを実行する。
GitHub Actionsとは
- GitHubのイベント(プッシュ、プルリクエストなど)をトリガーとして、ソフトウェア開発のワークフローを自動化する機能。
- ワークフローとは、GitHubに任意のコードプロジェクトをビルド、テスト、パッケージ、リリース、またはデプロイするためにGitリポジトリーで設定できる、カスタムの自動プロセスです。
- GitHub Actionsを利用することで、GitHub上のソースコードに対するCIを実現できます。
GitHub Actionsの役割
インテグレーションの要素から見ると、
- すべてのソースコードを1か所に集める。
⇒ GitHub上のGitリポジトリーで管理されている。 - ビルドを行う。
- テストを実行する。
⇒2と3について、GitHub Actionで行えるようになった。
GitHub ActionsでCIを行う手順
- テストケースの作成。
- (必要であれば)テストで必要なライブラリの設定をビルドツールに追加。
- テストケース等をGitリポジトリーに登録。
- Gitリポジトリー上にワークフローを記述するファイル(YAML形式)を作成。
⇒ テストケースを呼び出す処理(コマンド)を記述する。
以降、ワークフローで指定したイベントが発生すると、自動的にCIが行われます。
ワークフローの作成方法
-
メジャーな言語、環境、サーバー等のテンプレートが用意されているので、利用するテンプレートを選択する。
テンプレートを選択せずに、自分で作成することもできます)
-
指定したテンプレートのワークフローが作成されるので、ファイル名、処理を記述する。
※「Gitリポジトリー/.github/workflows」の下に作成します。
※ワークフローの構成、構文については、後ほど説明します。
-
コミットが完了すると、ワークフローの初回実行が行われます。
以降、ワークフローで指定したイベントが発生するごとに、ワークフローが実行されます。
ワークフローの構成
ワークフローの構文
参考資料
GitHub Actions公式ドキュメント
https://help.github.com/ja/actions