From a331d4d7a303e758db8460b73ea3892a78e79560 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Gronowski?= Date: Mon, 13 Apr 2026 19:35:19 +0200 Subject: [PATCH] gha: Add milestone validation workflow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add validation to ensure PRs have milestones set and that they match the expected docker next version defined in releases configuration. This prevents PRs from being merged without proper milestone tracking, which is important for release management and ensuring changes are properly categorized for upcoming releases. Signed-off-by: Paweł Gronowski --- .github/workflows/validate-milestone.yml | 35 ++++++++++++++++++++++++ releases/versions.yaml | 4 +++ 2 files changed, 39 insertions(+) create mode 100644 .github/workflows/validate-milestone.yml create mode 100644 releases/versions.yaml diff --git a/.github/workflows/validate-milestone.yml b/.github/workflows/validate-milestone.yml new file mode 100644 index 0000000000..0a9811930c --- /dev/null +++ b/.github/workflows/validate-milestone.yml @@ -0,0 +1,35 @@ +name: validate-milestone + +permissions: + contents: read + +on: + pull_request: + types: [opened, synchronize, milestoned, demilestoned, edited] + +jobs: + validate-milestone: + runs-on: ubuntu-24.04 + timeout-minutes: 5 + steps: + - name: Checkout + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + sparse-checkout: releases + + - name: Validate milestone matches docker next version + run: | + expected=$(yq -r '.docker.next' releases/versions.yaml) + milestone="${{ github.event.pull_request.milestone.title }}" + + if [[ -z "$milestone" ]]; then + echo "::error::PR must have a milestone set (expected: $expected)" + exit 1 + fi + + if [[ "$milestone" != "$expected" ]]; then + echo "::error::Milestone '$milestone' does not match docker next version '$expected'" + exit 1 + fi + + echo "Milestone: $milestone ✓" diff --git a/releases/versions.yaml b/releases/versions.yaml new file mode 100644 index 0000000000..568dfea934 --- /dev/null +++ b/releases/versions.yaml @@ -0,0 +1,4 @@ +--- +docker: + current: "29.4.0" + next: "29.4.1"