Upgrade to Pro — share decks privately, control downloads, hide ads and more …

動作確認を同時にできるようにしてサイクルタイムを改善した話

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

 動作確認を同時にできるようにしてサイクルタイムを改善した話

一つの環境を占有して動作確認していた従来の直列型のフローから、複数のPRの内容を同時にデプロイして動作確認できるようにGitHub Actionsのワークフローを書いて導入した話になります。

Avatar for m-narin

m-narin

April 10, 2026

More Decks by m-narin

Other Decks in Technology

Transcript

  1. 9 ワークフローの概要 1. 専用labelのついたOpen PR一覧(Draft含む)を取得 2. 最新のdevelopを基準に各PRの差分を反映するbranch = deploy/stagingを作成 a.

    各PRごとにmerge commitしていく b. もしconflictが発生するようなら処理停止 3. deploy/staging branchをpush 4. deploy/staging branchをdeployする
  2. 10 ワークフローのポイント 1. 専用labelのついたOpen PR一覧(Draft含む)を取得 - name: List open PRs

    with label deploy/staging run: | gh pr list \ --state=open \ --label=deploy/staging \ --json number \ --jq '.[].number' \ > pr_lists.json env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  3. 12 ワークフローのポイント a. 各PRごとにmerge commitしていく b. もしconflictが発生するようなら処理停止 - name: Merge

    each labeled PR run: | while IFS= read -r pr; do echo "Merging PR #$pr…" git fetch origin pull/"$pr"/head:pr-"$pr" if git merge --no-ff pr-"$pr" -m "Merge PR #$pr"; then echo "merged #$pr" else echo "conflict in #$pr, aborting" >&2 git merge --abort exit 1 fi done < pr_lists.json
  4. 14 ワークフローのポイント 4. deploy/staging branchをdeployする deploy: needs: update-deploy-branch runs-on: ubuntu-latest

    env: IMAGE_TAG: ${{ needs.update-deploy-branch.outputs.sha }} steps: - name: Checkout deploy/staging branch uses: actions/checkout@v4 with: ref: deploy/staging # 各自追記