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