ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。

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

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

GitHub Actionsは現在、限定パブリックベータとして利用可能で、変更となる可能性があります。ベータ期間中は、高価なワークフローやコンテンツにこの機能を利用することは避けてください。

詳細は「GitHub Actionsについて」(/articles/about-github-actions) を参照してください。

ここには以下の内容があります:

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

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

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

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

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

CIでGitHub Actionsを使用すると、リポジトリでコードをビルドしたうえで、GitHubにホストされたサーバーでテストを実行するデフォルトのワークフローが作成されます。 ワークフローはクラウドにホストされたサーバー上の仮想環境で実行され、リポジトリのクローンにアクセスすることができます。 詳細については、「[ GitHub Actions

](/articles/virtual-environments-for-github-actions/)の仮想環境」を参照してください。

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

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

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

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

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

サポートされている言語

GitHubでは、各種の言語とフレームワークに応じてCIワークフローが提供されます。

GitHub で提供されるCIワークフローの詳細なリストは、actions/starter-workflows リポジトリにあります。

GitHub Actionsを使用する継続的インテグレーションのコア概念

GitHub Actionsで継続的インテグレーションを使用するときに特別な意味を持つ一般用語があります。

ワークフロー

リポジトリに設定して、GitHubで任意のプロジェクトをビルド、テスト、パッケージ、リリース、デプロイできる設定可能な自動プロセス。ワークフローは、1つ以上のジョブで構成され、イベントによってスケジュールまたはアクティブ化することができます。

ワークフロー実行

事前に設定されたイベントが発生したときに実行されるワークフローのインスタンス。ワークフロー実行ごとにジョブ、アクション、ログ、ステータスを確認できます。

ワークフローファイル

ワークフローの設定を、1つ以上のジョブで定義するYAMLファイル。このファイルはGitHubリポジトリのルート、.github/workflowsディレクトリにあります。

ジョブ

ステップで構成される、定義済みのタスク。各ジョブは仮想環境の新しいインスタンスで実行されます。ジョブの実行方法に関する依存関係ルールは、ワークフローファイルで定義できます。ジョブは、並行して同時に実行することも、前のジョブのステータスに依存して逐次的に実行することもできます。たとえば、コードをビルドしてテストする2つの逐次ジョブをワークフローに指定し、テストジョブがビルドジョブのステータスに依存するように設定することも可能です。ビルドジョブが失敗すると、テストジョブは実行されません。

ステップ

ステップは、ジョブによって実行される一連のタスクです。ジョブの各ステップは同じ仮想環境で実行されるため、ファイルシステムを使用してそのジョブのアクションで情報を共有することができます。ステップではコマンドまたはアクションを実行できます。

アクション

ジョブを作成する際にステップとして組み合わせる個々のタスク。アクションは、ワークフローのポータブルな最小構成プログラムです。独自のアクションを作成することも、GitHubコミュニティからのアクションを共有することも、パブリックアクションをカスタマイズすることもできます。ワークフローでアクションを使用するには、ステップとして含める必要があります。

継続的インテグレーション (CI)

小規模なコード変更を共有リポジトリに頻繁にコミットしてゆくソフトウェア開発手法。GitHub Actionsでは、コードのビルドとテストを自動化するカスタムのCIワークフローを作成できます。リポジトリから、コード変更のステータスと、ワークフローの各アクションの詳細ログを確認できます。CIを使用すると、コード変更に対するフィードバックをすぐに得られ、バグの検出と解決が迅速になるので、開発者の時間が節約されます。

継続的デプロイメント (CD)

継続的デプロイメントは、継続的インテグレーションの上に成立します。新しいコードをコミットしてCIテストをクリアすると、そのコードは自動的に本番環境にデプロイされます。GitHub Actionsでは、自分のリポジトリから任意のクラウド、セルフホストのサービス、またはプラットフォームに自動的にコードをデプロイするカスタムのCDワークフローを作成できます。CDを使用すると、デプロイプロセスを自動化して開発者の時間が節約され、テスト済みの安定したコード変更が顧客に迅速にデプロイされます。

仮想環境

GitHubは、ワークフローを実行するLinux、macOS、Windowsの仮想環境をホストしています。

runner

各仮想環境で、使用可能なジョブを待機するGitHubサービス。runnerがジョブを選択すると、ジョブのアクションを実行してその進捗、ログ、最終結果がGitHubに戻されます。runnerは、ジョブを一度に1回ずつ実行します。

イベント

ワークフロー実行をトリガーする特定のアクティビティ。たとえば、リポジトリへのコミットがあったときや、Issueまたはプルリクエストが作成されたときに、GitHubからアクティビティが発生します。外部イベントが発生したとき、リポジトリディスパッチwebhookを使用して実行されるワークフローも設定できます。

アーチファクト

アーチファクトは、コードをビルドしてテストするときに作成されるファイルです。たとえば、バイナリまたはパッケージファイル、テスト結果、スクリーンショット、ログファイルなどがあります。アーチファクトは、作成されたワークフロー実行に関連付けられ、他のジョブで使用したりデプロイしたりすることができます。

ワークフロー実行の通知

GitHub Actionsのメールまたはウェブ通知を有効にしている場合、トリガーしたワークフロー実行が完了したときに通知が届きます。通知には、ワークフロー実行のステータス (実行の成功、失敗、ニュートラル、キャンセル) が記載されています。ワークフロー実行が失敗したときにだけ通知を受け取るように設定することもできます。

リポジトリの [Actions] タブでもワークフロー実行のステータスは確認できます。詳細については、「ワークフロー実行の管理」(/articles/managing-a-workflow-run) を参照してください。

参考リンク

](/articles/setting-up-continuous-integration-using-github-actions)を使用して継続的インテグレーションを設定する

担当者にお尋ねください

探しているものが見つからなかったでしょうか?

弊社にお問い合わせください