5a558eb09e
TypeScript SDK Compatibility V1.x E2E Tests / Select Node version matrix (push) Has been cancelled
TypeScript SDK Compatibility V1.x E2E Tests / TypeScript SDK Compatibility V1.x E2E Tests Node ${{matrix.node_version}} (push) Has been cancelled
TypeScript SDK E2E Tests / TypeScript SDK E2E Tests Node ${{matrix.node_version}} (push) Has been cancelled
Opik Optimizer - E2E Tests / build-opik (push) Has been cancelled
TypeScript SDK Compatibility V1.x E2E Tests / build-opik (push) Has been cancelled
Python SDK E2E Tests / Select Python version matrix (push) Has been cancelled
Python SDK E2E Tests / Python SDK E2E Tests ${{matrix.python_version}} (push) Has been cancelled
Python SDK E2E Tests / build-opik (push) Has been cancelled
Python SDK Compatibility V1.x E2E Tests / Select Python version matrix (push) Has been cancelled
Python SDK Compatibility V1.x E2E Tests / Python SDK Compatibility V1.x E2E Tests ${{matrix.python_version}} (push) Has been cancelled
Python SDK Compatibility V1.x E2E Tests / build-opik (push) Has been cancelled
TypeScript SDK E2E Tests / Select Node version matrix (push) Has been cancelled
TypeScript SDK E2E Tests / build-opik (push) Has been cancelled
Opik Optimizer - E2E Tests / Opik Optimizer E2E Tests Python ${{matrix.python_version}} (push) Has been cancelled
Opik Optimizer - E2E Tests / Opik Optimizer Integration Smoke Tests (push) Has been cancelled
🐙 Code Quality / detect (push) Has been cancelled
🐙 Code Quality / lint (${{ matrix.leg.name }}) (push) Has been cancelled
🐙 Code Quality / summary (push) Has been cancelled
TypeScript SDK Library Integration Tests / Check Secrets (push) Has been cancelled
TypeScript SDK Library Integration Tests / opik-vercel (Vercel AI SDK / eve) (push) Has been cancelled
SDK Library Integration Tests Runner / Check Secrets (push) Has been cancelled
SDK Library Integration Tests Runner / Missed OpenAI API Key Warning (push) Has been cancelled
SDK Library Integration Tests Runner / Build (push) Has been cancelled
SDK Library Integration Tests Runner / openai_tests (push) Has been cancelled
SDK Library Integration Tests Runner / langchain_tests (push) Has been cancelled
SDK Library Integration Tests Runner / langchain_legacy_tests (push) Has been cancelled
SDK Library Integration Tests Runner / llama_index_tests (push) Has been cancelled
SDK Library Integration Tests Runner / anthropic_tests (push) Has been cancelled
SDK Library Integration Tests Runner / mistral_tests (push) Has been cancelled
SDK Library Integration Tests Runner / groq_tests (push) Has been cancelled
SDK Library Integration Tests Runner / aisuite_tests (push) Has been cancelled
SDK Library Integration Tests Runner / haystack_tests (push) Has been cancelled
SDK Library Integration Tests Runner / dspy_tests (push) Has been cancelled
SDK Library Integration Tests Runner / crewai_v0_tests (push) Has been cancelled
SDK Library Integration Tests Runner / crewai_v1_tests (push) Has been cancelled
SDK Library Integration Tests Runner / genai_tests (push) Has been cancelled
SDK Library Integration Tests Runner / adk_tests (push) Has been cancelled
SDK Library Integration Tests Runner / adk_legacy_1_3_0_tests (push) Has been cancelled
SDK Library Integration Tests Runner / evaluation_metrics_tests (push) Has been cancelled
SDK Library Integration Tests Runner / bedrock_tests (push) Has been cancelled
SDK Library Integration Tests Runner / litellm_tests (push) Has been cancelled
SDK Library Integration Tests Runner / harbor_tests (push) Has been cancelled
SDK Library Integration Tests Runner / Slack Notification (push) Has been cancelled
Lint Opik Helm Chart / render-equality (push) Has been cancelled
Opik Optimizer - Unit Tests / Opik Optimizer Unit Tests Python ${{matrix.python_version}} (push) Has been cancelled
Python BE E2E Tests / Python BE E2E (push) Has been cancelled
Python Backend Tests / run-python-backend-tests (push) Has been cancelled
Python SDK Unit Tests / Python SDK Unit Tests ${{matrix.python_version}} (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
SDK E2E Libraries Integration Tests / Check Secrets (push) Has been cancelled
SDK E2E Libraries Integration Tests / Missed OpenAI API Key Warning (push) Has been cancelled
SDK E2E Libraries Integration Tests / build-opik (push) Has been cancelled
SDK E2E Libraries Integration Tests / E2E Lib Integration Python ${{matrix.python_version}} (push) Has been cancelled
TypeScript SDK Integration Build & Publish / build-and-publish (opik-gemini) (push) Has been cancelled
TypeScript SDK Integration Build & Publish / build-and-publish (opik-langchain) (push) Has been cancelled
TypeScript SDK Integration Build & Publish / build-and-publish (opik-openai) (push) Has been cancelled
TypeScript SDK Integration Build & Publish / build-and-publish (opik-otel) (push) Has been cancelled
TypeScript SDK Integration Build & Publish / build-and-publish (opik-vercel) (push) Has been cancelled
TypeScript SDK Build & Publish / build-and-publish (push) Has been cancelled
TypeScript SDK Unit Tests / Test on Node ${{ matrix.node-version }} (push) Has been cancelled
Backend Tests / discover-tests (push) Has been cancelled
Backend Tests / ${{ matrix.name }} (push) Has been cancelled
Build and Publish SDK / build-and-publish (push) Has been cancelled
Build Opik Docker Images / set-version (push) Has been cancelled
Build Opik Docker Images / build-backend (push) Has been cancelled
Build Opik Docker Images / build-sandbox-executor-python (push) Has been cancelled
Build Opik Docker Images / build-python-backend (push) Has been cancelled
Build Opik Docker Images / build-frontend (push) Has been cancelled
Build Opik Docker Images / create-git-tag (push) Has been cancelled
ClickHouse Migration Cluster Check / validate-clickhouse-migrations (push) Has been cancelled
Docs - Publish / run (push) Has been cancelled
E2E Tests - Post Merge (v2) / 🧪 E2E v2 Tests (${{ github.event.inputs.tier || 't1' }}) (push) Has been cancelled
E2E Tests - Post Merge (v2) / 📢 Slack Notification (push) Has been cancelled
Frontend Unit Tests / Test on Node 20 (push) Has been cancelled
Guardrails E2E Tests / Select Python version matrix (push) Has been cancelled
Guardrails E2E Tests / Guardrails E2E Tests ${{matrix.python_version}} (push) Has been cancelled
Guardrails E2E Tests / 📢 Slack Notification (push) Has been cancelled
Guardrails Backend Unit Tests / Guardrails Backend Unit Tests (push) Has been cancelled
Guardrails Backend Unit Tests / 📢 Slack Notification (push) Has been cancelled
Lint Opik Helm Chart / lint-helm-chart (Helm v3.21.0) (push) Has been cancelled
Lint Opik Helm Chart / lint-helm-chart (Helm v4.2.0) (push) Has been cancelled
Lint Opik Helm Chart / unittest-helm-chart (push) Has been cancelled
164 lines
5.2 KiB
YAML
164 lines
5.2 KiB
YAML
name: Opik TypeScript Configure Publish
|
||
run-name: "Opik TypeScript Configure Publish from ${{github.ref_name}} by @${{ github.actor }}"
|
||
|
||
permissions:
|
||
contents: write
|
||
packages: write
|
||
|
||
on:
|
||
workflow_dispatch:
|
||
inputs:
|
||
version:
|
||
type: string
|
||
required: true
|
||
description: Version
|
||
default: ""
|
||
is_release:
|
||
type: boolean
|
||
required: false
|
||
default: false
|
||
workflow_call:
|
||
inputs:
|
||
version:
|
||
type: string
|
||
required: true
|
||
description: Version
|
||
is_release:
|
||
type: boolean
|
||
required: false
|
||
default: false
|
||
|
||
jobs:
|
||
publish:
|
||
runs-on: ubuntu-latest
|
||
timeout-minutes: 10
|
||
env:
|
||
VERSION: ${{ github.event.inputs.version || inputs.version }}
|
||
IS_RELEASE: ${{ github.event.inputs.is_release || inputs.is_release }}
|
||
defaults:
|
||
run:
|
||
working-directory: sdks/typescript/src/opik/configure
|
||
|
||
steps:
|
||
- uses: actions/checkout@v6
|
||
with:
|
||
ref: ${{ github.ref }}
|
||
fetch-depth: 0
|
||
token: ${{ secrets.GH_PAT_TO_ACCESS_GITHUB_API }}
|
||
|
||
- name: Setup Node.js
|
||
uses: actions/setup-node@v4
|
||
with:
|
||
node-version: "20"
|
||
registry-url: "https://registry.npmjs.org"
|
||
|
||
- name: Resolve published package name
|
||
if: ${{ env.IS_RELEASE }}
|
||
id: resolve_pkg_name
|
||
shell: bash
|
||
working-directory: sdks/typescript/src/opik/configure
|
||
run: |
|
||
# Derive from package.json so the preflight always probes the actual publish
|
||
# target, even if the package is renamed (e.g., opik-configure -> opik-ts).
|
||
PKG=$(node -p "require('./package.json').name")
|
||
echo "name=${PKG}" >> "$GITHUB_OUTPUT"
|
||
|
||
- name: NPM token preflight
|
||
if: ${{ env.IS_RELEASE }}
|
||
uses: ./.github/actions/npm-token-preflight
|
||
with:
|
||
npm_token: ${{ secrets.NPM_TOKEN }}
|
||
package_name: ${{ steps.resolve_pkg_name.outputs.name }}
|
||
|
||
- name: Setup pnpm
|
||
uses: pnpm/action-setup@v4
|
||
with:
|
||
version: 9.15.5
|
||
|
||
- name: Install dependencies
|
||
run: pnpm install --frozen-lockfile
|
||
|
||
- name: Validate version format
|
||
if: ${{ env.IS_RELEASE }}
|
||
run: |
|
||
if ! [[ "${{ env.VERSION }}" =~ ^[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9.]+)?$ ]]; then
|
||
echo "Error: Invalid version format '${{ env.VERSION }}'. Expected format: X.Y.Z or X.Y.Z-suffix"
|
||
exit 1
|
||
fi
|
||
|
||
- name: Update version
|
||
if: ${{ env.IS_RELEASE }}
|
||
run: pnpm version ${{ env.VERSION }} --no-git-tag-version
|
||
|
||
- name: Lint and format check
|
||
run: |
|
||
pnpm run fmt:check || echo "Warning: Format check failed"
|
||
pnpm run lint || echo "Warning: Lint check failed"
|
||
|
||
- name: Build package
|
||
run: pnpm build
|
||
|
||
- name: Verify build
|
||
run: |
|
||
if [ ! -d "dist" ]; then
|
||
echo "Error: Build failed - dist directory not found"
|
||
exit 1
|
||
fi
|
||
|
||
- name: Check if version already exists on NPM
|
||
if: ${{ env.IS_RELEASE }}
|
||
run: |
|
||
PACKAGE_NAME=$(node -p "require('./package.json').name")
|
||
if npm view "$PACKAGE_NAME@${{ env.VERSION }}" version 2>/dev/null; then
|
||
echo "Error: Version ${{ env.VERSION }} already exists on NPM"
|
||
exit 1
|
||
fi
|
||
echo "Version check passed - ${{ env.VERSION }} is available"
|
||
|
||
- name: Commit version changes
|
||
if: ${{ env.IS_RELEASE }}
|
||
run: |
|
||
git config --local user.email "github-actions@comet.com"
|
||
git config --local user.name "github-actions"
|
||
git add package.json pnpm-lock.yaml
|
||
git diff --staged --quiet || git commit -m "chore: update Opik Configure version to ${{ env.VERSION }}"
|
||
|
||
- name: Create git tag
|
||
if: ${{ env.IS_RELEASE }}
|
||
run: |
|
||
git tag -a "configure-v${{ env.VERSION }}" -m "Release Opik Configure v${{ env.VERSION }}"
|
||
|
||
- name: Publish to NPM
|
||
if: ${{ env.IS_RELEASE }}
|
||
run: |
|
||
echo "Publishing opik-configure version ${{ env.VERSION }} to NPM..."
|
||
pnpm publish --no-git-checks --access public
|
||
env:
|
||
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||
|
||
- name: Push changes and tags
|
||
if: ${{ env.IS_RELEASE }}
|
||
run: |
|
||
git push origin ${{ github.ref }}
|
||
git push origin "configure-v${{ env.VERSION }}"
|
||
env:
|
||
GITHUB_TOKEN: ${{ secrets.GH_PAT_TO_ACCESS_GITHUB_API }}
|
||
|
||
- name: Workflow summary
|
||
if: always()
|
||
run: |
|
||
exec >> "$GITHUB_STEP_SUMMARY"
|
||
echo "## Workflow Summary"
|
||
echo ""
|
||
echo "- **Version**: ${{ env.VERSION }}"
|
||
echo "- **Is Release**: ${{ env.IS_RELEASE }}"
|
||
echo "- **Branch**: ${{ github.ref_name }}"
|
||
echo "- **Triggered by**: @${{ github.actor }}"
|
||
echo ""
|
||
if [ "${{ env.IS_RELEASE }}" == "true" ]; then
|
||
echo "✅ Package published to NPM: [opik-configure@${{ env.VERSION }}](https://www.npmjs.com/package/opik-configure/v/${{ env.VERSION }})"
|
||
echo "✅ Git tag created: configure-v${{ env.VERSION }}"
|
||
else
|
||
echo "ℹ️ Dry run completed - no changes published"
|
||
fi
|