Resolve ClientOptions from a configuration profile by default #717
Workflow file for this run
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: CI | |
| on: | |
| push: | |
| branches: ['*'] # Triggers on push to any branch. | |
| pull_request: | |
| branches: [main] | |
| merge_group: | |
| permissions: | |
| id-token: write # Required for JFrog OIDC token exchange. | |
| contents: read # Required for actions/checkout. | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| lint: | |
| name: Lint (${{ matrix.shard }}) | |
| runs-on: | |
| group: databricks-protected-runner-group | |
| labels: linux-ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| # Shards partition packages by the first letter after `@databricks/sdk-`. | |
| # Together the four ranges cover a-z. | |
| shard: ['[a-c]*', '[d-l]*', '[m-r]*', '[s-z]*'] | |
| steps: | |
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 | |
| - name: Setup JFrog CLI | |
| uses: jfrog/setup-jfrog-cli@279b1f629f43dd5bc658d8361ac4802a7ef8d2d5 # v4.9.1 | |
| env: | |
| JF_URL: https://databricks.jfrog.io | |
| with: | |
| oidc-provider-name: github-actions | |
| - name: Setup Node.js | |
| uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 | |
| with: | |
| node-version: '22' | |
| cache: 'npm' | |
| - name: Configure npm for JFrog | |
| run: jf npmc --repo-resolve=db-npm | |
| - name: Install dependencies | |
| run: jf npm ci | |
| - name: Run lint and format checks | |
| run: npm run checks -- --filter='@databricks/sdk-${{ matrix.shard }}' | |
| typecheck: | |
| name: Type Check (${{ matrix.shard }}) | |
| runs-on: | |
| group: databricks-protected-runner-group | |
| labels: linux-ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| shard: ['[a-c]*', '[d-l]*', '[m-r]*', '[s-z]*'] | |
| steps: | |
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 | |
| - name: Setup JFrog CLI | |
| uses: jfrog/setup-jfrog-cli@279b1f629f43dd5bc658d8361ac4802a7ef8d2d5 # v4.9.1 | |
| env: | |
| JF_URL: https://databricks.jfrog.io | |
| with: | |
| oidc-provider-name: github-actions | |
| - name: Setup Node.js | |
| uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 | |
| with: | |
| node-version: '22' | |
| cache: 'npm' | |
| - name: Configure npm for JFrog | |
| run: jf npmc --repo-resolve=db-npm | |
| - name: Install dependencies | |
| run: jf npm ci | |
| - name: Run type check | |
| run: npm run typecheck -- --filter='@databricks/sdk-${{ matrix.shard }}' | |
| test: | |
| name: Test (Node.js ${{ matrix.node-version }}) | |
| runs-on: | |
| group: databricks-protected-runner-group | |
| labels: linux-ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| node-version: ['22', '24'] | |
| steps: | |
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 | |
| - name: Setup JFrog CLI | |
| uses: jfrog/setup-jfrog-cli@279b1f629f43dd5bc658d8361ac4802a7ef8d2d5 # v4.9.1 | |
| env: | |
| JF_URL: https://databricks.jfrog.io | |
| with: | |
| oidc-provider-name: github-actions | |
| - name: Setup Node.js ${{ matrix.node-version }} | |
| uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| cache: 'npm' | |
| - name: Configure npm for JFrog | |
| run: jf npmc --repo-resolve=db-npm | |
| - name: Install dependencies | |
| run: jf npm ci | |
| - name: Run tests | |
| run: npm test | |
| test-browser: | |
| name: Test (Browser, Node.js ${{ matrix.node-version }}) | |
| runs-on: | |
| group: databricks-protected-runner-group | |
| labels: linux-ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| node-version: ['22', '24'] | |
| steps: | |
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 | |
| - name: Setup JFrog CLI | |
| uses: jfrog/setup-jfrog-cli@279b1f629f43dd5bc658d8361ac4802a7ef8d2d5 # v4.9.1 | |
| env: | |
| JF_URL: https://databricks.jfrog.io | |
| with: | |
| oidc-provider-name: github-actions | |
| - name: Setup Node.js ${{ matrix.node-version }} | |
| uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| cache: 'npm' | |
| - name: Configure npm for JFrog | |
| run: jf npmc --repo-resolve=db-npm | |
| - name: Install dependencies | |
| run: jf npm ci | |
| - name: Install Playwright browsers | |
| run: npx playwright install chromium --with-deps | |
| - name: Run browser tests | |
| run: npm run test:browser | |
| build: | |
| name: Build (Node.js ${{ matrix.node-version }}, ${{ matrix.shard }}) | |
| runs-on: | |
| group: databricks-protected-runner-group | |
| labels: linux-ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| node-version: ['22', '24'] | |
| shard: ['[a-c]*', '[d-l]*', '[m-r]*', '[s-z]*'] | |
| steps: | |
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 | |
| - name: Setup JFrog CLI | |
| uses: jfrog/setup-jfrog-cli@279b1f629f43dd5bc658d8361ac4802a7ef8d2d5 # v4.9.1 | |
| env: | |
| JF_URL: https://databricks.jfrog.io | |
| with: | |
| oidc-provider-name: github-actions | |
| - name: Setup Node.js ${{ matrix.node-version }} | |
| uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| cache: 'npm' | |
| - name: Configure npm for JFrog | |
| run: jf npmc --repo-resolve=db-npm | |
| - name: Install dependencies | |
| run: jf npm ci | |
| - name: Build | |
| run: npm run build -- --filter='@databricks/sdk-${{ matrix.shard }}' | |
| check-licenses: | |
| name: Check Licenses | |
| runs-on: | |
| group: databricks-protected-runner-group | |
| labels: linux-ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 | |
| with: | |
| node-version: '22' | |
| - name: Verify every published package ships a LICENSE | |
| run: node scripts/check-licenses.mjs | |
| # This job gates merging. It depends on all CI jobs so that branch protection | |
| # only needs to reference this single check. When adding new jobs, append | |
| # them to the "needs" list below and branch protection stays in sync. | |
| ci-gate: | |
| name: CI Gate | |
| if: always() | |
| needs: [lint, typecheck, test, test-browser, build, check-licenses] | |
| runs-on: | |
| group: databricks-protected-runner-group | |
| labels: linux-ubuntu-latest | |
| steps: | |
| - name: Check results | |
| run: | | |
| results="${{ join(needs.*.result, ' ') }}" | |
| for r in $results; do | |
| if [ "$r" != "success" ]; then | |
| echo "One or more CI jobs failed or were cancelled." | |
| exit 1 | |
| fi | |
| done | |
| echo "All CI jobs passed." |