From 7974339cad029189a6d0d280831a123bdf93e7eb Mon Sep 17 00:00:00 2001 From: Dorin Geman Date: Tue, 24 Mar 2026 17:41:14 +0200 Subject: [PATCH 1/2] ci(release): skip docs PR when CLI reference is unchanged Co-Authored-By: Claude Opus 4.6 (1M context) Signed-off-by: Dorin Geman --- .github/workflows/release.yml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c04b49653..4a456ba39 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -526,7 +526,30 @@ jobs: permissions: contents: read steps: + - name: Check if CLI docs changed + id: check-docs + env: + GH_TOKEN: ${{ secrets.CLI_RELEASE_PAT }} + RELEASE_TAG: ${{ needs.prepare.outputs.release_tag }} + PREVIOUS_TAG: ${{ needs.prepare.outputs.previous_tag }} + run: | + if [ -z "$PREVIOUS_TAG" ]; then + echo "No previous tag — assuming docs changed" + echo "changed=true" >> "$GITHUB_OUTPUT" + exit 0 + fi + CHANGED=$(gh api repos/docker/model-runner/compare/${PREVIOUS_TAG}...${RELEASE_TAG} \ + --jq '[.files[].filename | select(startswith("cmd/cli/docs/reference/"))] | length') + if [ "$CHANGED" -gt 0 ]; then + echo "CLI docs changed ($CHANGED files)" + echo "changed=true" >> "$GITHUB_OUTPUT" + else + echo "No CLI docs changes between $PREVIOUS_TAG and $RELEASE_TAG — skipping" + echo "changed=false" >> "$GITHUB_OUTPUT" + fi + - name: Checkout docs + if: steps.check-docs.outputs.changed == 'true' uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with: repository: docker/docs @@ -534,18 +557,21 @@ jobs: fetch-depth: 0 - name: Set up Go + if: steps.check-docs.outputs.changed == 'true' uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 with: go-version: 1.25.8 cache: true - name: Vendor model-runner CLI docs + if: steps.check-docs.outputs.changed == 'true' env: RELEASE_TAG: ${{ needs.prepare.outputs.release_tag }} run: | VENDOR_MODULE=github.com/docker/model-runner@${RELEASE_TAG} make vendor - name: Create pull request + if: steps.check-docs.outputs.changed == 'true' uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 with: token: ${{ secrets.DOCKER_DOCS }} From 7fa7f6f23fb514df52876c08152f3d67cdd6d72a Mon Sep 17 00:00:00 2001 From: Dorin Geman Date: Tue, 24 Mar 2026 17:41:24 +0200 Subject: [PATCH 2/2] ci(release): strip transitive deps from docs go.mod after vendor Co-Authored-By: Claude Opus 4.6 (1M context) Signed-off-by: Dorin Geman --- .github/workflows/release.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4a456ba39..f0678ec47 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -569,6 +569,9 @@ jobs: RELEASE_TAG: ${{ needs.prepare.outputs.release_tag }} run: | VENDOR_MODULE=github.com/docker/model-runner@${RELEASE_TAG} make vendor + # Remove the second require block added by `go get` — the docs repo + # only needs the direct dependency in the first require block. + awk '/^require \(/{n++} n==2{if(/^\)/) n=3; next} n!=2' go.mod > go.mod.tmp && mv go.mod.tmp go.mod - name: Create pull request if: steps.check-docs.outputs.changed == 'true'