test(cancel): treat 'could not get query in-flight' as inconclusive, … #7
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: kernel-rc-cross-os | |
| # Cross-OS / arch / Node validation of the SQL kernel (Rust/SEA) backend against | |
| # the PUBLISHED release candidate (@databricks/sql@1.16.0-rc.1) in kernel mode | |
| # (useKernel:true). Confirms the per-platform @databricks/databricks-sql-kernel-<triple> | |
| # napi binary installs, loads, and runs the full bug-bash suite on each OS. | |
| # | |
| # Node matrix: | |
| # - 18/20/22: real published RC (loader floor is >=18) — kernel as shipped. | |
| # - 16: the loader hard-gates at >=18, but the binary is N-API<=7 and runs on | |
| # Node 16. These jobs LOWER the floor 18->16 to validate the proposed change | |
| # (kernel on Node 16), and additionally run the Thrift suite (no change needed). | |
| # | |
| # Runs on push to this branch and via manual dispatch. Heavy queries hit a real | |
| # warehouse; concurrency is capped. | |
| on: | |
| push: | |
| branches: [ kernel-rc-cross-os-ci ] | |
| workflow_dispatch: | |
| inputs: | |
| rc_version: | |
| description: '@databricks/sql version to test' | |
| required: true | |
| default: '1.16.0-rc.1' | |
| defaults: | |
| run: | |
| working-directory: ci/kernel-rc-bugbash | |
| # Reuses the repo's existing e2e secrets (same as main.yml): | |
| # DATABRICKS_HOST, TEST_PECO_WAREHOUSE_HTTP_PATH, DATABRICKS_TOKEN | |
| env: | |
| RC_VERSION: ${{ github.event.inputs.rc_version || '1.16.0-rc.1' }} | |
| DATABRICKS_PECOTESTING_SERVER_HOSTNAME: ${{ secrets.DATABRICKS_HOST }} | |
| DATABRICKS_PECOTESTING_HTTP_PATH2: ${{ secrets.TEST_PECO_WAREHOUSE_HTTP_PATH }} | |
| DATABRICKS_PECOTESTING_TOKEN: ${{ secrets.DATABRICKS_TOKEN }} | |
| jobs: | |
| # glibc Linux (x64 + arm64), macOS (x64 + arm64), Windows x64. | |
| suite: | |
| name: ${{ matrix.label }} · node ${{ matrix.node }} | |
| runs-on: ${{ matrix.os }} | |
| environment: azure-prod # e2e secrets (DATABRICKS_*) are scoped to this environment | |
| timeout-minutes: 40 | |
| strategy: | |
| fail-fast: false | |
| max-parallel: 3 # cap concurrent load on the single warehouse | |
| matrix: | |
| include: | |
| # Node 16 — validate the proposed lowered floor (kernel) + Thrift. | |
| # The kernel packages declare engines>=18, so npm SKIPS them as | |
| # optional deps on Node 16; we force-install the matching triple | |
| # (a direct install only warns on engines) then lower the loader floor. | |
| - { label: linux-x64-gnu, os: ubuntu-latest, node: 16, triple: linux-x64-gnu } | |
| - { label: darwin-x64, os: macos-13, node: 16, triple: darwin-x64 } | |
| - { label: darwin-arm64, os: macos-latest, node: 16, triple: darwin-arm64 } | |
| - { label: win32-x64-msvc, os: windows-latest, node: 16, triple: win32-x64-msvc } | |
| # 18/20/22 — real published RC (floor >=18), kernel as shipped. | |
| - { label: linux-x64-gnu, os: ubuntu-latest, node: 18 } | |
| - { label: linux-x64-gnu, os: ubuntu-latest, node: 20 } | |
| - { label: linux-x64-gnu, os: ubuntu-latest, node: 22 } | |
| - { label: linux-arm64-gnu, os: ubuntu-24.04-arm, node: 20 } # needs ARM runner availability | |
| - { label: darwin-x64, os: macos-13, node: 20 } | |
| - { label: darwin-arm64, os: macos-latest, node: 20 } | |
| - { label: win32-x64-msvc, os: windows-latest, node: 20 } | |
| steps: | |
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 | |
| - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 | |
| with: | |
| node-version: ${{ matrix.node }} | |
| - name: Platform info | |
| run: node -e "console.log(process.version, process.platform, process.arch)" | |
| - name: Install RC ${{ env.RC_VERSION }} (resolves per-platform kernel binary) | |
| run: | | |
| npm install --no-audit --no-fund | |
| npm install --no-audit --no-fund "@databricks/sql@${{ env.RC_VERSION }}" | |
| - name: '[node16] Force-install kernel binary (npm skips it via engines>=18) + lower floor' | |
| if: ${{ matrix.node == 16 }} | |
| run: | | |
| npm install --no-save --no-audit --no-fund "@databricks/databricks-sql-kernel-${{ matrix.triple }}@0.2.0" | |
| node -e "const fs=require('fs');const f='node_modules/@databricks/sql/dist/kernel/KernelNativeLoader.js';const s=fs.readFileSync(f,'utf8');const o=s.replace('MIN_NODE_MAJOR = 18','MIN_NODE_MAJOR = 16');if(o===s)throw new Error('floor marker not found');fs.writeFileSync(f,o);console.log('kernel floor lowered 18->16');" | |
| - name: Verify kernel native binary loads | |
| run: node -e "console.log('kernel napi', require('@databricks/sql/native/kernel').version())" | |
| - name: Run full bug-bash suite (KERNEL mode) | |
| run: node scripts/run-all.js | |
| - name: '[node16] Run full bug-bash suite (THRIFT mode)' | |
| if: ${{ matrix.node == 16 }} | |
| env: | |
| BUGBASH_THRIFT: '1' | |
| run: node scripts/run-all.js | |
| # musl Linux (Alpine) — run via docker on a glibc runner (a `container:` job | |
| # breaks JS actions: the runner's glibc node can't exec inside musl). | |
| linux-musl: | |
| name: ${{ matrix.label }} · ${{ matrix.image }} | |
| runs-on: ${{ matrix.runner }} | |
| environment: azure-prod # e2e secrets (DATABRICKS_*) are scoped to this environment | |
| timeout-minutes: 40 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - { label: linux-x64-musl, runner: ubuntu-latest, image: 'node:20-alpine', node16: '' } | |
| - { label: linux-x64-musl, runner: ubuntu-latest, image: 'node:16-alpine', node16: 'yes' } | |
| - { label: linux-arm64-musl, runner: ubuntu-24.04-arm, image: 'node:20-alpine', node16: '' } # needs ARM runner availability | |
| steps: | |
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 | |
| - name: Run suite in ${{ matrix.image }} | |
| working-directory: . | |
| run: | | |
| docker run --rm \ | |
| -e DATABRICKS_PECOTESTING_SERVER_HOSTNAME \ | |
| -e DATABRICKS_PECOTESTING_HTTP_PATH2 \ | |
| -e DATABRICKS_PECOTESTING_TOKEN \ | |
| -e LOWER16='${{ matrix.node16 }}' \ | |
| -v "$PWD":/work -w /work/ci/kernel-rc-bugbash ${{ matrix.image }} \ | |
| sh -c "node -e 'console.log(process.version, process.platform, process.arch)' && \ | |
| npm install --no-audit --no-fund && \ | |
| npm install --no-audit --no-fund '@databricks/sql@${{ env.RC_VERSION }}' && \ | |
| if [ -n \"\$LOWER16\" ]; then npm install --no-save --no-audit --no-fund '@databricks/databricks-sql-kernel-linux-x64-musl@0.2.0' && node -e \"const fs=require('fs');const f='node_modules/@databricks/sql/dist/kernel/KernelNativeLoader.js';fs.writeFileSync(f,fs.readFileSync(f,'utf8').replace('MIN_NODE_MAJOR = 18','MIN_NODE_MAJOR = 16'));console.log('floor lowered 18->16');\"; fi && \ | |
| node -e \"console.log('kernel napi', require('@databricks/sql/native/kernel').version())\" && \ | |
| node scripts/run-all.js" |