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

モノレポにおける
path-filtering利用時でも
GitHub ステータスのRequiredを
機能させたい!

tokizo
October 24, 2022

モノレポにおける
path-filtering利用時でも
GitHub ステータスのRequiredを
機能させたい!

tokizo

October 24, 2022
Tweet

More Decks by tokizo

Other Decks in Programming

Transcript

  1. GitHub ステータス *2 ・ 少しややこしい  ・ GitHub Checks  ・ GitHub

    ステータス (今日はこっち)   ⇒ CircleCIではジョブごとに列挙 *2 https://circleci.com/docs/ja/enable-checks/ 19
  2. 問題 /ios /android GitHub GitHub android-test-job path-filtering/filter ios-test-job CircleCI Required

    Required 変更あり 27 ios-test-jobは実行されない → Requiredの項目がグリーンに
   ならない → マージできない
  3. アプローチ /ios /android GitHub GitHub android-test-job path-filtering/filter ios-test-job workflow-status-check-job New

    ! CircleCI Required Required Required 33 PRマージ時にグリーンになってほしい ジョブ (android-test-job や ios-test- job) を含むワークフローがグリーンに なっていたらグリーンになるジョブ workflow-status-check-job
  4. workflow-status-check-jobの実装 直近に実行したパイプラインのリストを取得 Step 1 パイプラインに紐づくワークフローを取得 Step 2 ワークフローの状態を取得 Step 3

    特定のワークフローが成功していたら自分自身をグリーンにする Step 4 CircleCI API v2 CircleCI API v2 CircleCI API v2 36 → Requiredにしたいジョブを含むワークフロー
  5. いつ実行させる? /ios /android GitHub GitHub android-test-job path-filtering ios-test-job workflow-status-check-job CircleCI

    Required 確認対象のワークフローが
 終わった後に実行させたい workflow-status-check-job 39
  6. いつ実行させる? /ios /android GitHub GitHub android-test-job path-filtering ios-test-job workflow-status-check-job CircleCI

    Required 確認対象のワークフローが
 終わった後に実行させたい ↓ 確認対象のワークフロー内の
 最後のジョブでRerunさせる workflow-status-check-job CircleCI API v2 40