From 6eeba6eda445a1d7ca5cf7be609871780d73dd39 Mon Sep 17 00:00:00 2001 From: ShimonSte Date: Thu, 11 Jun 2026 17:35:37 +0300 Subject: [PATCH] Trigger Tableau TDVT in connectors on snapshot publish and release Tableau users install the latest ClickHouse JDBC driver manually, so a snapshot or release regression reaches them with no connector release in between. After a snapshot/release publishes, fire a repository_dispatch to ClickHouse/connectors so its Tableau TDVT suite runs against the new driver. Tracking: CON-264. - nightly.yml: dispatch event_type=jdbc-snapshot; version derived from the pom property (env.CHC_VERSION is commented out). - release.yml: dispatch event_type=jdbc-release with the release version input. - Both are continue-on-error so a dispatch failure never fails the publish, and require secrets.CONNECTORS_DISPATCH_TOKEN (Contents:read/write on connectors). --- .github/workflows/nightly.yml | 27 +++++++++++++++++++++++++++ .github/workflows/release.yml | 24 ++++++++++++++++++++++++ 2 files changed, 51 insertions(+) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 1846891dd..17a4f5b8e 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -84,3 +84,30 @@ jobs: gpg_passphrase: ${{ secrets.GPG_PASSPHRASE }} nexus_username: ${{ secrets.SONATYPE_TOKEN_USER }} nexus_password: ${{ secrets.SONATYPE_TOKEN }} + # Tableau users install the latest JDBC driver manually, so a snapshot + # regression hits them with no connector release in between - trigger the + # TDVT suite in ClickHouse/connectors on every published snapshot. + # https://github.com/ClickHouse/connectors/issues/71 + - name: Mint a token to dispatch into connectors + id: tdvt-token + if: success() + continue-on-error: true # a TDVT dispatch failure must never fail the publish + uses: actions/create-github-app-token@v3 + with: + app-id: ${{ secrets.WORKFLOW_AUTH_PUBLIC_APP_ID }} + private-key: ${{ secrets.WORKFLOW_AUTH_PUBLIC_PRIVATE_KEY }} + owner: ${{ github.repository_owner }} + repositories: "connectors" + - name: Trigger Tableau TDVT in connectors + if: success() + continue-on-error: true # a TDVT dispatch failure must never fail the publish + env: + GH_TOKEN: ${{ steps.tdvt-token.outputs.token }} + run: | + # The published snapshot version is the pom's property + # (env.CHC_VERSION is commented out above, so it can't be used here) + VERSION=$(sed -n 's|.*\(.*\).*|\1|p' pom.xml | head -1) + echo "Dispatching TDVT for clickhouse-jdbc $VERSION" + gh api repos/ClickHouse/connectors/dispatches \ + -f event_type=jdbc-snapshot \ + -F "client_payload[jdbc_version]=$VERSION" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 022d27155..8309472ba 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -88,3 +88,27 @@ jobs: clickhouse-r2dbc/target/clickhouse*.jar client-v2/target/client-v2*.jar jdbc-v2/target/jdbc-v2*.jar + # Tableau users install the latest JDBC driver manually, so a release + # regression hits them with no connector release in between - trigger the + # TDVT suite in ClickHouse/connectors on every release. + # https://github.com/ClickHouse/connectors/issues/71 + - name: Mint a token to dispatch into connectors + id: tdvt-token + if: success() + continue-on-error: true # a TDVT dispatch failure must never fail the release + uses: actions/create-github-app-token@v3 + with: + app-id: ${{ secrets.WORKFLOW_AUTH_PUBLIC_APP_ID }} + private-key: ${{ secrets.WORKFLOW_AUTH_PUBLIC_PRIVATE_KEY }} + owner: ${{ github.repository_owner }} + repositories: "connectors" + - name: Trigger Tableau TDVT in connectors + if: success() + continue-on-error: true # a TDVT dispatch failure must never fail the release + env: + GH_TOKEN: ${{ steps.tdvt-token.outputs.token }} + run: | + echo "Dispatching TDVT for clickhouse-jdbc ${{ github.event.inputs.version }}" + gh api repos/ClickHouse/connectors/dispatches \ + -f event_type=jdbc-release \ + -F "client_payload[jdbc_version]=${{ github.event.inputs.version }}"