継続的インテグレーションについて

GitHub Actions で GitHub リポジトリにカスタム継続的インテグレーション(CI)ワークフローと継続的デプロイメント(CD)ワークフローを直接作成できます。

GitHub ActionsはGitHub Free、GitHub Pro、GitHub FreeのOrganization、GitHub Team、GitHub Enterprise Cloud、GitHub AEで利用できます。 GitHub Actionsは、レガシーのリポジトリごとのプランを使っているアカウントが所有しているプライベートリポジトリでは利用できません。 詳しい情報については「GitHubの製品」を参照してください。

継続的インテグレーションについて

継続的インテグレーション (CI) とは、ソフトウェアの開発においてコードを頻繁に共有リポジトリにコミットする手法のことです。 コードをコミットする頻度が高いほどエラーの検出が早くなり、開発者がエラーの原因を見つけるためにデバッグしなければならないコードの量も減ります。 コードの更新が頻繁であれば、ソフトウェア開発チームの他のメンバーによる変更をマージするのも、それだけ容易になります。 コードの記述により多くの時間をかけられるようになり、エラーのデバッグやマージコンフリクトの解決にかける時間が減るので、これは開発者にとって素晴らしいやり方です。

コードをリポジトリにコミットするとき、コミットによってエラーが発生しないように、コードのビルドとテストを継続的に行うことができます。 テストには、コードの文法チェッカー (スタイルフォーマットをチェックする)、セキュリティチェック、コードカバレッジ、機能テスト、その他のカスタムチェックを含めることができます。

コードをビルドしてテストするには、サーバーが必要です。 ローカルでアップデートのビルドとテストを行ってからコードをリポジトリにプッシュする方法もありますし、リポジトリ での新しいコードのコミットをチェックするCIサーバーを使用する方法もあります。

GitHub Actions を使用する継続的インテグレーションについて

GitHub Actions を利用した CI では、リポジトリ中のコードをビルドしてテストを実行できるワークフローが利用できます。 ワークフローは、GitHub でホストされている仮想マシン、または自分がホストしているマシンで実行できます。 詳しい情報については、「GitHub ホストランナーの仮想環境」および「セルフホストランナーについて」を参照してください。

CI ワークフローは、GitHub イベントが発生したとき(たとえば、新しいコードがリポジトリにプッシュされたとき)や、設定されたスケジュール、またはリポジトリディスパッチ webhook を使用して外部イベントが発生したときに実行するように設定できます。

GitHub は CI テストを実行して、プルリクエストで各テストの結果を提供するため、ブランチの変更によってエラーが発生したかどうかを確認できます。 ワークフローのテストがすべて成功すると、プッシュした変更をチームメンバーがレビューできるように、またはマージできるようになります。 テストが失敗した場合は、いずれかの変更がその原因になっている可能性があります。

リポジトリに CI を設定する際には、GitHub がリポジトリ内のコードを分析し、リポジトリ内の言語とフレームワークに基づいて CI ワークフローを推奨します。 たとえば、Node.js を使用する場合、GitHub は、Node.js パッケージをインストールしてテストを実行するテンプレートファイルを提案します。 GitHub によって提案された CI ワークフローテンプレートを使用しても、提案されたテンプレートをカスタマイズしてもかまいませんし、独自のカスタムワークフローファイルを作成して CI テストを実行することもできます。

提案された継続的インテグレーションテンプレートのスクリーンショット

プロジェクトの CI ワークフローの設定だけでなく、GitHub Actions を使用してソフトウェア開発のライフサイクル全体に渡るワークフローを作成することもできます。 たとえば、Actionを使用してプロジェクトをデプロイ、パッケージ、またはリリースすることが可能です。 詳しい情報については、「GitHub Actions について」を参照してください。

一般的な用語の定義については「GitHub Actions の中核的概念」を参照してください。

サポートされている言語

GitHub では、各種言語およびフレームワークに応じて CI ワークフローテンプレートが提供されます。

GitHub 上の actions/starter-workflows リポジトリ

ワークフロー実行をスキップする

ワークフローがトリガーされないようにする場合は、コミットメッセージにスキップ命令を追加できます。 on: push または on: pull_request でトリガーされるワークフローは、プッシュまたはプルリクエストの HEAD コミットで、次の文字列型のいずれかをコミットメッセージに追加した場合トリガーされません。

  • [skip ci]
  • [ci skip]
  • [no ci]
  • [skip actions]
  • [actions skip]

または、コミットメッセージを 2 行の空行で終了し、その後に skip-checks: true または skip-checks:true のいずれかを続けることもできます。

最初にリポジトリがパスするための特定のチェックを受けるように設定されている場合、プルリクエストをマージすることはできません。 プルリクエストをマージできるようにするには、コミットメッセージのスキップ命令なしでプルリクエストに新しいコミットをプッシュできます。

注釈: スキップ命令は、push および pull_request イベントにのみ適用されます。 たとえば、コミットメッセージに [skip ci] を追加しても、on: pull_request_target でトリガーされたワークフロー実行は停止されません。

ワークフロー実行の通知

GitHub Actionsに対するメールあるいはWeb通知を有効化すると、あなたが起動したワークフローの実行が完了すると通知されます。 この通知には、ワークフローの実行のステータス(成功、失敗、ニュートラル、キャンセルされた実行が含まれます)が含まれます。 ワークフローの実行が失敗したときにだけ通知を受けるようにすることもできます。

スケジュールされたワークフローに関する通知は、最初にワークフローを作成したユーザに送信されます。 ワークフローファイルのcron構文を他のユーザが更新した場合、それ以降の通知はそのユーザに送られるようになります。スケジュールされたワークフローが無効化され、その後に有効化されると、通知は最後にcron構文を変更したユーザではなく、ワークフローを再有効化したユーザに送られるようになります。

リポジトリのActionsタブでワークフローの実行のステータスを見ることもできます。 詳細については、「ワークフロー実行の管理」を参照してください。

ワークフロー実行のためのステータスバッジ

詳細は「ワークフローの設定」を参照してください。

参考リンク

このドキュメントは役立ちましたか?プライバシーポリシー

これらのドキュメントを素晴らしいものにするのを手伝ってください!

GitHubのすべてのドキュメントはオープンソースです。間違っていたり、はっきりしないところがありましたか?Pull Requestをお送りください。

コントリビューションを行う

OR, コントリビューションの方法を学んでください。

問題がまだ解決していませんか?

GitHubコミュニティで質問するサポートへの連絡