🎃
GitHubActionsでPullRequestをトリガーとする時の例
GitHubActionsで効果的なPull Requestワークフローを構築する
GitHubActionsを使ってPull Request(PR)のワークフローを効率化する方法について書いています。
PRの作成時と、マージされて閉じられた時にトリガーされるactionsの例を紹介し、それぞれの使用場面について解説します。
1. PRが作成された時のAction
まず、PRが作成された時にトリガーされるactionの例を見てみましょう。
name: PR Created Checks
on:
pull_request:
types: [opened, reopened]
jobs:
run-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.1.7
- name: Set up Node.js
uses: actions/setup-node@v4.0.3
with:
node-version: '14'
- name: Install dependencies
run: npm ci
- name: Run tests
run: npm test
説明
このactionは、PRが開かれたり再開されたりした時に実行されます。主な目的は、提案された変更がプロジェクトの既存のテストをパスするかどうかを確認することです。
使用タイミング
- 新しいコードがプロジェクトの品質基準を満たしているか確認したい時
- CI/CDパイプラインの一部として、早期にバグを発見したい時
- コードレビューの前に基本的な検証を行いたい時
2. PRがマージされて閉じられた時のAction
次に、PRがmainブランチにマージされて閉じられた時にトリガーされるactionの例を見てみましょう。
name: Post-Merge Tasks
on:
pull_request:
types: [closed]
branches:
- main
jobs:
build-and-deploy:
if: github.event.pull_request.merged == true
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.1.7
- name: Build project
run: npm run build
- name: Deploy to production
run: |
# デプロイスクリプトをここに記述
echo "Deploying to production..."
- name: Notify team
uses: 8398a7/action-slack@v3.16.2
with:
status: ${{ job.status }}
text: 'New changes have been deployed to production!'
webhook_url: ${{ secrets.SLACK_WEBHOOK }}
説明
このactionは、PRがマージされて閉じられた時にのみ実行されます。
プロジェクトのビルド、本番環境へのデプロイ、そしてチームへの通知を行います。
使用タイミング
- 承認された変更を自動的に本番環境(mainブランチ)にデプロイしたい時
- デプロイ後のタスク(データベースマイグレーションなど)を実行したい時
- 新機能のリリースをチームに通知したい時
まとめ
GitHubActionsを使用することで、PRのライフサイクルの重要なポイントで自動化されたタスクを実行できます。
PRの作成時にテストを実行することで、早期に問題を発見し、コードの品質を維持できます。一方、マージ後のactionを使用することで、デプロイプロセスを自動化し、チーム全体の生産性を向上させることができます。
Discussion