diff --git a/.github/workflows/check-pr-has-milestone.yml b/.github/workflows/check-pr-has-milestone.yml new file mode 100644 index 0000000000..c360fb6397 --- /dev/null +++ b/.github/workflows/check-pr-has-milestone.yml @@ -0,0 +1,32 @@ +name: "Check PR Has Milestone" + +on: + pull_request_target: + types: [ opened, edited, synchronize, reopened ] + branches: + - dev + - master + - V6 + +concurrency: + group: "check-pr-milestone-${{ github.head_ref || github.run_id }}-${{ github.event_name }}" + cancel-in-progress: true + +jobs: + fail-on-bad-milestone: + name: Fail if Pull Request has no Associated Version Milestone + runs-on: ubuntu-latest + steps: + - name: Fail if no Milestone Set + if: github.event.pull_request.milestone == null + run: | + echo "::error::Pull request must have milestone set!" + exit 1 + + - name: Fail if Invalid Milestone Set + run: | + if [[ ${{ github.event.pull_request.milestone }} =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + exit 0 + fi + echo "::error::Pull request has non-standard milestone!" + exit 1