Files
wehub-resource-sync 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
chore: import upstream snapshot with attribution
2026-07-13 13:25:44 +08:00

162 lines
5.9 KiB
YAML

name: Publish Opik Helm Chart
run-name: "Publish Opik Helm Chart ${{ github.ref_name }} by @${{ github.actor }}"
on:
workflow_dispatch:
inputs:
version:
type: string
required: true
description: Version
default: ""
workflow_call:
inputs:
version:
type: string
required: true
description: Version
jobs:
publish-helm-chart:
# TODO(OPIK-6617): Add a preflight check that verifies the runner can push to the
# `gh-pages` branch (e.g. `git ls-remote --exit-code` with the same credentials)
# so a missing/expired GH token fails fast instead of after `helm package`.
# See .github/actions/npm-token-preflight for the pattern.
runs-on: ubuntu-latest
timeout-minutes: 15
env:
VERSION: ${{inputs.version}}
steps:
- name: Install Helm
# azure/setup-helm v4.3.1 pinned to commit SHA 1a275c3b69536ee54be43f2070a358922e12c8d4
# Source: https://github.com/Azure/setup-helm/releases/tag/v4.3.1
uses: azure/setup-helm@1a275c3b69536ee54be43f2070a358922e12c8d4
with:
version: v3.19.4
- name: Validate version input
shell: bash
run: |
set -e
# Validate version input to prevent command injection
if ! echo "$VERSION" | grep -qE '^v?[0-9]+\.[0-9]+\.[0-9]+(-[A-Za-z0-9.-]+)?(\+[A-Za-z0-9.-]+)?$'; then
echo "ERROR: Invalid version format: $VERSION"
echo "Expected SemVer format (e.g., v1.2.3, 1.2.3-alpha, 1.2.3+build)"
exit 1
fi
echo "Version validated: $VERSION"
- name: Checkout
uses: actions/checkout@v6
with:
ref: ${{inputs.version}}
fetch-tags: true
path: 'src'
fetch-depth: 0
- name: Checkout GH Pages branch
uses: actions/checkout@v6
with:
path: 'dest'
ref: 'gh-pages'
fetch-depth: 0
- name: Run lint on Helm chart
shell: bash
working-directory: src
run: |
set -e
cd deployment/helm_chart/opik
helm repo add mysql https://comet-ml.github.io/comet-mysql-helm/
helm repo add clickhouse-operator https://docs.altinity.com/clickhouse-operator
helm dependency build
helm lint --values values.yaml .
cd -
- name: Package helm chart
shell: bash
working-directory: src
run: |
set -e
cd deployment/helm_chart
helm package --version "$VERSION" --app-version "$VERSION" opik/ -u -d ../../../dest
cd -
echo "Copy updated README"
cp deployment/helm_chart/opik/README.md ../dest/.
- name: Restore file timestamps from git history
shell: bash
working-directory: dest
run: |
set -e
# Set file modification times based on git commit history
# This is important because helm repo index uses file mtime to set the 'created' field
# 1. Set timestamp for the newly packaged chart from source repo tag
NEW_CHART_FILE="opik-${VERSION}.tgz"
if [ -f "$NEW_CHART_FILE" ]; then
NEW_CHART_TIME=$(cd ../src && git log -1 --format="%cI" "$VERSION") || NEW_CHART_TIME=""
if [ -n "$NEW_CHART_TIME" ]; then
touch -d "$NEW_CHART_TIME" "$NEW_CHART_FILE"
echo "Set $NEW_CHART_FILE mtime to $NEW_CHART_TIME (from source tag)"
fi
fi
# 2. Restore timestamps for existing files from gh-pages git history
echo "Restoring file timestamps from git history..."
git ls-files -z | while read -r -d $'\0' file; do
if [ -f "$file" ]; then
TIME=$(git log -1 --format="%cI" -- "$file")
if [ -n "$TIME" ]; then
touch -d "$TIME" "$file"
echo "Set $file mtime to $TIME"
fi
fi
done
echo "File timestamps restored."
- name: Push New Files
shell: bash
working-directory: dest
env:
INDEX_FILE: index.yaml
run: |
set -e
# Run helm repo index which will overwrite created timestamps
helm repo index . --url https://raw.githubusercontent.com/comet-ml/opik/gh-pages/ --merge "${INDEX_FILE}"
# Fix timestamps again - helm repo index overwrites them based on file mtime
echo "=== Fixing timestamps based on file modification times ==="
CHARTS=$(yq eval '.entries[] | .[] | .urls[0]' "${INDEX_FILE}")
for CHART_URL in $CHARTS; do
FILENAME=$(basename "$CHART_URL")
if [ -f "$FILENAME" ]; then
MTIME=$(date -u -r "$FILENAME" +"%Y-%m-%dT%H:%M:%SZ")
echo "Setting $FILENAME timestamp to $MTIME"
yq eval "(.entries[][] | select(.urls[0] == \"$CHART_URL\") | .created) = \"$MTIME\"" -i --indent 2 "${INDEX_FILE}"
fi
done
git config user.name "Helm Updater"
git config user.email "actions@users.noreply.github.com"
git ls-files -o --exclude-standard -z | xargs -0 -r git add
git add "${INDEX_FILE}" README.md
if git diff --staged --quiet; then
echo "::warning title=helm publish::No changes to commit; chart ${VERSION} is already up to date in gh-pages."
else
git commit -m "Release Opik helm chart $VERSION"
git push
fi
- name: Summary
run: |
echo "Helm chart is published, version is : $VERSION" >> "$GITHUB_STEP_SUMMARY"