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

Enterprise以外でもMergeQueueしたい! / Use Merge Queue ...

Enterprise以外でもMergeQueueしたい! / Use Merge Queue without GitHub Enterprise

GitHub Actions Meetup Tokyo #3 (https://gaugt.connpass.com/event/317178/) で発表した資料です

Yusuke Yamada

May 16, 2024
Tweet

More Decks by Yusuke Yamada

Other Decks in Programming

Transcript

  1. 自己紹介 経歴 • サポーターズ 18 卒入社 • Microsoft MVP 2018-

    • GitHub Actions 歴 5 年 ちゅうこ (山田 裕介) GitHub: yamachu X(Twitter): y_chu5 趣味 • ポケカ、ゲーム • GitHubのExploreのだら見
  2. Merge Queueの機能を集めたCustom Actions yamachu/merge-queue-action • queueに積まれたPRが最新base branchとmergeableを担保 • 最新のbase branchでCIが通ること担保

    ◦ 上記2つは公式と同じような機能 • Merge Queueに積んだ人物はCODEOWNERであるのを担保 設計イメージは voyagegroup/popuko に影響を受けている
  3. イメージ (Merge Queueに積むWorkflow) jobs: Queuing: steps: - uses: yamachu/merge-queue-action/precheck@main -

    run: git push origin HEAD:auto.${{ github.event.issue.number }} - run: > gh workflow run -R ${{ github.event.repository.full_name }} -f issue_number=${{ github.event.issue.number }} -f tmp-ci-branch=auto.${{ github.event.issue.number }} --ref auto.${{ github.event.issue.number }} merge-queue-runner.yml Merge可能 / CODEOWNER かの確認
  4. jobs: Queuing: steps: - uses: yamachu/merge-queue-action/precheck@main - run: git push

    origin HEAD:auto.${{ github.event.issue.number }} - run: > gh workflow run -R ${{ github.event.repository.full_name }} -f issue_number=${{ github.event.issue.number }} -f tmp-ci-branch=auto.${{ github.event.issue.number }} --ref auto.${{ github.event.issue.number }} merge-queue-runner.yml イメージ (Merge Queueに積むWorkflow) Workflowのブランチ紐づけのためのpush
  5. jobs: Queuing: steps: - uses: yamachu/merge-queue-action/precheck@main - run: git push

    origin HEAD:auto.${{ github.event.issue.number }} - run: > gh workflow run -R ${{ github.event.repository.full_name }} -f issue_number=${{ github.event.issue.number }} -f tmp-ci-branch=auto.${{ github.event.issue.number }} --ref auto.${{ github.event.issue.number }} merge-queue-runner.yml イメージ (Merge Queueに積むWorkflow) Merge QueueのWorkflowにauto.*を積む
  6. on: workflow_dispatch: inputs: issue_number: concurrency: group: merge-queue cancel-in-progress: false …

    イメージ (Merge QueueライクなWorkflow) concurrency groupを設定して
  7. jobs: PreTesting: steps: - uses: yamachu/merge-queue-action/pretesting@main Test: uses: ./.github/workflows/test.yml needs:

    [PreTesting] PostTesting: needs: [PreTesting, Test] steps: - uses: yamachu/merge-queue-action/posttesting@main イメージ (Merge QueueライクなWorkflow) 実際のtestをサンドイッチする