Release @databricks/ai-sdk-provider #2
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: Release @databricks/ai-sdk-provider | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| production: | |
| description: "Publish to npm? (If unchecked, will publish with --tag next)" | |
| required: true | |
| default: false | |
| type: boolean | |
| jobs: | |
| release: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| id-token: write | |
| contents: write | |
| environment: | |
| name: ${{ inputs.production && 'npm' || 'npm-next' }} | |
| url: https://www.npmjs.com/package/@databricks/ai-sdk-provider | |
| defaults: | |
| run: | |
| working-directory: integrations/ai-sdk-provider | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: "20" | |
| registry-url: "https://registry.npmjs.org" | |
| - name: Update npm | |
| run: npm install -g npm@latest | |
| - name: Install dependencies | |
| run: rm -f package-lock.json && npm install | |
| - name: Get package version | |
| id: get-version | |
| run: | | |
| PKG_VERSION=$(node -p "require('./package.json').version") | |
| echo "version=$PKG_VERSION" >> $GITHUB_OUTPUT | |
| - name: Clean | |
| run: npm run clean | |
| - name: Build | |
| run: npm run build | |
| - name: Test | |
| run: npm run test | |
| - name: Lint | |
| run: npm run lint | |
| - name: Check package exports | |
| run: npm run check-package | |
| - name: Pack | |
| run: npm pack | |
| - name: Upload tarball artifact | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: dist-ai-sdk-provider | |
| path: integrations/ai-sdk-provider/*.tgz | |
| - name: Create GitHub Release (draft) | |
| if: inputs.production | |
| uses: ncipollo/release-action@v1 | |
| with: | |
| artifacts: "integrations/ai-sdk-provider/*.tgz" | |
| draft: true | |
| generateReleaseNotes: true | |
| - name: Publish to npm | |
| if: inputs.production | |
| run: npm publish --access public --provenance --ignore-scripts | |
| - name: Publish to npm (next tag) | |
| if: ${{ !inputs.production }} | |
| run: npm publish --access public --tag next --provenance --ignore-scripts | |
| - name: Wait for registry propagation | |
| run: sleep 15 | |
| - name: Smoke test (production) | |
| if: inputs.production | |
| run: | | |
| PKG_VERSION=${{ steps.get-version.outputs.version }} | |
| mkdir -p /tmp/smoke-test | |
| cd /tmp/smoke-test | |
| npm install @databricks/ai-sdk-provider@$PKG_VERSION | |
| INSTALLED_VERSION=$(node -p "require('./node_modules/@databricks/ai-sdk-provider/package.json').version") | |
| echo "Expected: $PKG_VERSION" | |
| echo "Installed: $INSTALLED_VERSION" | |
| if [ "$PKG_VERSION" != "$INSTALLED_VERSION" ]; then | |
| echo "Version mismatch!" | |
| exit 1 | |
| fi | |
| echo "Smoke test passed!" | |
| - name: Smoke test (next tag) | |
| if: ${{ !inputs.production }} | |
| run: | | |
| mkdir -p /tmp/smoke-test | |
| cd /tmp/smoke-test | |
| npm install @databricks/ai-sdk-provider@next | |
| INSTALLED_VERSION=$(node -p "require('./node_modules/@databricks/ai-sdk-provider/package.json').version") | |
| echo "Installed @next version: $INSTALLED_VERSION" | |
| echo "Smoke test passed!" | |
| - name: Generate package link | |
| run: | | |
| PKG_VERSION=${{ steps.get-version.outputs.version }} | |
| if [ "${{ inputs.production }}" == "true" ]; then | |
| LINK="https://www.npmjs.com/package/@databricks/ai-sdk-provider/v/$PKG_VERSION" | |
| echo "## :rocket: Package Released" >> $GITHUB_STEP_SUMMARY | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| echo "**@databricks/ai-sdk-provider v$PKG_VERSION** has been published to npm!" >> $GITHUB_STEP_SUMMARY | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| echo ":link: [$LINK]($LINK)" >> $GITHUB_STEP_SUMMARY | |
| else | |
| LINK="https://www.npmjs.com/package/@databricks/ai-sdk-provider?activeTab=versions" | |
| echo "## :test_tube: Package Released (next tag)" >> $GITHUB_STEP_SUMMARY | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| echo "**@databricks/ai-sdk-provider v$PKG_VERSION** has been published to npm with --tag next!" >> $GITHUB_STEP_SUMMARY | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| echo ":link: [$LINK]($LINK)" >> $GITHUB_STEP_SUMMARY | |
| fi |