【GitHub Actions】特定の条件下のみジョブ実行: 効率的なCI/CDパイプラインの構築
GitHub Actionsを使用すると、コードの変更に応じて自動的にビルド、テスト、デプロイなどのジョブを実行できます。ただし、すべての変更に対してジョブを実行する必要はありません。特定の条件下でのみジョブを実行するように設定することができます。 以下では、GitHub Actionsでdevelopブランチからmainブランチへのプルリクエストが承認された場合のみ、ジョブを実行するようにする方法について説明します。 GitHub Actionsでは、 この設定により、プルリクエストがdevelopブランチからmainブランチへ向けられ、かつ、承認された場合のみジョブが実行されます。 GitHub Actionsのワークフローを更新して、特定の条件下でのみ実行するようにした場合、コミットメッセージに適切な情報を含めることが重要です。以下は、適切なコミットメッセージの例です。 このコミットメッセージでは、GitHub Actionsのワークフローを更新し、developブランチからmainブランチへの承認されたプルリクエストでのみ実行されるようにしたことが簡潔に説明されています。 GitHub Actionsでは、環境変数を使って条件式を指定することもできます。例えば、環境変数 この設定では、 GitHub Actionsを使用すると、特定の条件下でのみジョブを実行する方法をGitHub Actionsで実装する方法について説明しました。この方法を使用することで、リソースの節約やワークフローの効率化が期待できます。適切なコミットメッセージを含めることにより、開発者間で変更の目的を簡潔に伝えることができます。GitHub Actionsは柔軟で強力なツールであり、特定の条件に基づいてジョブを実行することで、プロジェクトのニーズに合わせて最適化することが可能です。GitHub Actionsで特定の条件下でジョブを実行する
条件式を使用して特定の条件下でジョブを実行する
on
トリガーと if
条件を組み合わせることで、特定の条件下でのみジョブを実行できます。以下は、pull_request
イベントをトリガーとし、プルリクエストがdevelopブランチからmainブランチへ向けられ、かつ、そのプルリクエストが承認された場合にジョブが実行されるようにする設定例です。name: Your Workflow Name
on:
pull_request:
branches:
- main
types:
- closed
jobs:
your_job:
if: github.event.pull_request.base.ref == 'main' && github.event.pull_request.head.ref == 'develop' && github.event.pull_request.merged == true
runs-on: ubuntu-latest
steps:
# Your job steps
コミットメッセージに適切な情報を含める
Update workflow for approved develop->main PRs
環境変数を使った条件指定
TARGET_BRANCH
とSOURCE_BRANCH
を使用して、特定のブランチ間でのプルリクエストにのみジョブを実行するように設定することができます。jobs:
your_job:
if: github.event.pull_request.base.ref == env.TARGET_BRANCH && github.event.pull_request.head.ref == env.SOURCE_BRANCH && github.event.pull_request.merged == true
runs-on: ubuntu-latest
steps:
- name: Set environment variables
run: |
echo "TARGET_BRANCH=main" >> $GITHUB_ENV
echo "SOURCE_BRANCH=develop" >> $GITHUB_ENV
# Your job steps
TARGET_BRANCH
とSOURCE_BRANCH
の環境変数を設定し、それらを条件式で使用しています。この方法であれば、条件式を変更する際に環境変数の値を編集するだけで済むため、より柔軟性が向上しますまとめ