You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tooling.apache.org by sb...@apache.org on 2026/06/26 18:28:40 UTC

(tooling-trusted-releases) branch sbp updated: Add a workflow to test client compatibility with the server

This is an automated email from the ASF dual-hosted git repository.

sbp pushed a commit to branch sbp
in repository https://gitbox.apache.org/repos/asf/tooling-trusted-releases.git


The following commit(s) were added to refs/heads/sbp by this push:
     new abe689af Add a workflow to test client compatibility with the server
abe689af is described below

commit abe689af119679bd7f8b9b13782b03da5a1fdab1
Author: Sean B. Palmer <se...@miscoranda.com>
AuthorDate: Fri Jun 26 19:28:14 2026 +0100

    Add a workflow to test client compatibility with the server
---
 .github/workflows/client-compat.yml | 94 +++++++++++++++++++++++++++++++++++++
 1 file changed, 94 insertions(+)

diff --git a/.github/workflows/client-compat.yml b/.github/workflows/client-compat.yml
new file mode 100644
index 00000000..ba27e58c
--- /dev/null
+++ b/.github/workflows/client-compat.yml
@@ -0,0 +1,94 @@
+name: Client compatibility
+
+on:
+  push:
+    branches: [altera, arm, main, sbp, tertia]
+  workflow_dispatch:
+
+permissions:
+  contents: read
+  issues: write
+
+jobs:
+  client-compat:
+    runs-on: self-hosted
+    continue-on-error: true
+    steps:
+      - name: Check out server (this branch)
+        uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
+        with:
+          persist-credentials: false
+
+      - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
+        with:
+          python-version: '3.13'
+      - uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
+        with:
+          version: '0.11.20'
+
+      - name: Start the test-mode server
+        run: |
+          uv sync --frozen --no-dev
+          make certs
+          make serve-local &
+          for _ in $(seq 1 60); do
+            curl -ksf https://localhost.apache.org:8080/ >/dev/null && break
+            sleep 1
+          done
+          curl -ksf https://localhost.apache.org:8080/ >/dev/null
+
+      - name: Mint a PAT for the test user
+        run: |
+          set -euo pipefail
+          curl -ksSf https://localhost.apache.org:8080/test/pat -o "$HOME/.atr-pat"
+          test -s "$HOME/.atr-pat"
+
+      - name: Check out client HEAD
+        uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
+        with:
+          repository: apache/tooling-releases-client
+          ref: main
+          path: client
+          persist-credentials: false
+
+      - name: Run client transcripts against server branch
+        id: smoke
+        continue-on-error: true
+        working-directory: client
+        env:
+          USER: test
+        run: |
+          uv sync --frozen --all-groups
+          uv run --frozen pytest -q
+
+      - name: Open an issue on new breakage
+        if: steps.smoke.outcome == 'failure'
+        env:
+          GH_TOKEN: ${{ github.token }}
+          REPO: ${{ github.repository }}
+          BRANCH: ${{ github.ref_name }}
+          ACTOR: ${{ github.actor }}
+          SHA: ${{ github.sha }}
+          RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
+        run: |
+          set -euo pipefail
+          label="client-compat"
+          title="Client HEAD broke against server [${BRANCH}]"
+          gh label create "$label" --repo "$REPO" --color B60205 \
+            --description "Client HEAD failed the server-CI compatibility check" 2>/dev/null || true
+          open=$(gh issue list --repo "$REPO" --state open --label "$label" --json title \
+            | jq --arg t "$title" 'any(.[]; .title == $t)')
+          if [ "$open" = "true" ]; then
+            echo "An open ${label} issue already exists for ${BRANCH}; doing nothing."
+            exit 0
+          fi
+          body=$(cat <<EOF
+          The client (apache/tooling-releases-client at HEAD) failed the compatibility check against server branch ${BRANCH} at commit ${SHA}.
+
+          Run: ${RUN_URL}
+
+          cc @${ACTOR}
+          EOF
+          )
+          gh issue create --repo "$REPO" --label "$label" --assignee "$ACTOR" \
+            --title "$title" --body "$body"


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@tooling.apache.org
For additional commands, e-mail: commits-help@tooling.apache.org