Skip to content

既存 3 ワークフローへ changes ゲート + concurrency 適用 #366

Description

@win2cot

やること

既存 3 ワークフローに changes 判定ジョブ(dorny/paths-filter@v3)+ if: ゲートを入れ、
変更箇所に応じて重いジョブを skip する。あわせて concurrency cancel-in-progress を全件に追加。

path 対応

ワークフロー 走らせる変更 path
cicd.yml(Gradle :webapi:check webapi/**, *.gradle*, gradle/**, gradlew*
code-quality.yml webapi/src/**/*.java, webapi/src/**/db/migration/**
openapi-lint.yml api/**

実装メモ

  • 各ワークフローに軽量 changes job を追加 → 既存の重い job を needs: changes + if: でゲート
  • skip された job は required check 上「成功」扱いになる(permanent pending の罠を回避)
  • concurrency: { group: ${{ github.workflow }}-${{ github.ref }}, cancel-in-progress: true }

受入条件

  • docs-only PR で cicd.yml の Gradle job が skip され、CI が数分→数十秒に短縮
  • コード変更 PR では従来どおり全 job が実行される
  • branch protection の required check が skip 時もブロックされないことを確認
  • 連続 push で古い run が cancel される

case B(人手 PR 固定)。

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/ci.github/workflows / CI/CD パイプライン変更priority/p2Medium。完了が望ましいが柔軟に判断可

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions