Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
293 changes: 293 additions & 0 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,293 @@
default:
image: 'python:3.11-slim'

include:
- project: core-ee/signing/api-integration
ref: develop
file: /templates/.sign-client.yml

stages:
- build
- sign
- deploy
- post-release

variables:
# Define package configurations: name, path, and PyPI package name
PACKAGES: |
util-genai:util/opentelemetry-util-genai:splunk-otel-util-genai
util-genai-evals:util/opentelemetry-util-genai-evals:splunk-otel-util-genai-evals
genai-emitters-splunk:util/opentelemetry-util-genai-emitters-splunk:splunk-otel-genai-emitters-splunk
genai-evals-deepeval:util/opentelemetry-util-genai-evals-deepeval:splunk-otel-genai-evals-deepeval
instrumentation-langchain:instrumentation-genai/opentelemetry-instrumentation-langchain:splunk-otel-instrumentation-langchain

# Build jobs for each package
build-util-genai:
stage: build
script:
- pip install hatch
- cd util/opentelemetry-util-genai
- hatch build
- mkdir -p ../../dist/util-genai
- mv dist/* ../../dist/util-genai/
- cd ../../dist/util-genai
- sha256sum * > checksums.txt
artifacts:
paths:
- dist/util-genai/
rules:
- if: '$CI_COMMIT_TAG =~ /^util-genai-v[0-9]+\.[0-9]+\.[0-9]+.*/'

build-util-genai-evals:
stage: build
script:
- pip install hatch
- cd util/opentelemetry-util-genai-evals
- hatch build
- mkdir -p ../../dist/util-genai-evals
- mv dist/* ../../dist/util-genai-evals/
- cd ../../dist/util-genai-evals
- sha256sum * > checksums.txt
artifacts:
paths:
- dist/util-genai-evals/
rules:
- if: '$CI_COMMIT_TAG =~ /^util-genai-evals-v[0-9]+\.[0-9]+\.[0-9]+.*/'

build-genai-emitters-splunk:
stage: build
script:
- pip install hatch
- cd util/opentelemetry-util-genai-emitters-splunk
- hatch build
- mkdir -p ../../dist/genai-emitters-splunk
- mv dist/* ../../dist/genai-emitters-splunk/
- cd ../../dist/genai-emitters-splunk
- sha256sum * > checksums.txt
artifacts:
paths:
- dist/genai-emitters-splunk/
rules:
- if: '$CI_COMMIT_TAG =~ /^genai-emitters-splunk-v[0-9]+\.[0-9]+\.[0-9]+.*/'

build-genai-evals-deepeval:
stage: build
script:
- pip install hatch
- cd util/opentelemetry-util-genai-evals-deepeval
- hatch build
- mkdir -p ../../dist/genai-evals-deepeval
- mv dist/* ../../dist/genai-evals-deepeval/
- cd ../../dist/genai-evals-deepeval
- sha256sum * > checksums.txt
artifacts:
paths:
- dist/genai-evals-deepeval/
rules:
- if: '$CI_COMMIT_TAG =~ /^genai-evals-deepeval-v[0-9]+\.[0-9]+\.[0-9]+.*/'

build-instrumentation-langchain:
stage: build
script:
- pip install hatch
- cd instrumentation-genai/opentelemetry-instrumentation-langchain
- hatch build
- mkdir -p ../../dist/instrumentation-langchain
- mv dist/* ../../dist/instrumentation-langchain/
- cd ../../dist/instrumentation-langchain
- sha256sum * > checksums.txt
artifacts:
paths:
- dist/instrumentation-langchain/
rules:
- if: '$CI_COMMIT_TAG =~ /^instrumentation-langchain-v[0-9]+\.[0-9]+\.[0-9]+.*/'

# Signing jobs for each package
sign-util-genai:
stage: sign
extends: .submit-signing-request
needs:
- build-util-genai
variables:
ARTIFACT: dist/util-genai/checksums.txt
SIGN_TYPE: GPG
DOWNLOAD_DIR: dist/util-genai
LOGLEVEL: DEBUG
artifacts:
paths:
- dist/util-genai/
rules:
- if: '$CI_COMMIT_TAG =~ /^util-genai-v[0-9]+\.[0-9]+\.[0-9]+.*/'

sign-util-genai-evals:
stage: sign
extends: .submit-signing-request
needs:
- build-util-genai-evals
variables:
ARTIFACT: dist/util-genai-evals/checksums.txt
SIGN_TYPE: GPG
DOWNLOAD_DIR: dist/util-genai-evals
LOGLEVEL: DEBUG
artifacts:
paths:
- dist/util-genai-evals/
rules:
- if: '$CI_COMMIT_TAG =~ /^util-genai-evals-v[0-9]+\.[0-9]+\.[0-9]+.*/'

sign-genai-emitters-splunk:
stage: sign
extends: .submit-signing-request
needs:
- build-genai-emitters-splunk
variables:
ARTIFACT: dist/genai-emitters-splunk/checksums.txt
SIGN_TYPE: GPG
DOWNLOAD_DIR: dist/genai-emitters-splunk
LOGLEVEL: DEBUG
artifacts:
paths:
- dist/genai-emitters-splunk/
rules:
- if: '$CI_COMMIT_TAG =~ /^genai-emitters-splunk-v[0-9]+\.[0-9]+\.[0-9]+.*/'

sign-genai-evals-deepeval:
stage: sign
extends: .submit-signing-request
needs:
- build-genai-evals-deepeval
variables:
ARTIFACT: dist/genai-evals-deepeval/checksums.txt
SIGN_TYPE: GPG
DOWNLOAD_DIR: dist/genai-evals-deepeval
LOGLEVEL: DEBUG
artifacts:
paths:
- dist/genai-evals-deepeval/
rules:
- if: '$CI_COMMIT_TAG =~ /^genai-evals-deepeval-v[0-9]+\.[0-9]+\.[0-9]+.*/'

sign-instrumentation-langchain:
stage: sign
extends: .submit-signing-request
needs:
- build-instrumentation-langchain
variables:
ARTIFACT: dist/instrumentation-langchain/checksums.txt
SIGN_TYPE: GPG
DOWNLOAD_DIR: dist/instrumentation-langchain
LOGLEVEL: DEBUG
artifacts:
paths:
- dist/instrumentation-langchain/
rules:
- if: '$CI_COMMIT_TAG =~ /^instrumentation-langchain-v[0-9]+\.[0-9]+\.[0-9]+.*/'

# Deploy jobs for each package
deploy-util-genai:
stage: deploy
script:
- pip install hatch keyrings.alt
- cd util/opentelemetry-util-genai
- mkdir -p dist
- cp ../../dist/util-genai/* dist/
- hatch --no-interactive publish
needs:
- sign-util-genai
rules:
- if: '$CI_COMMIT_TAG =~ /^util-genai-v[0-9]+\.[0-9]+\.[0-9]+.*/'

deploy-util-genai-evals:
stage: deploy
script:
- pip install hatch keyrings.alt
- cd util/opentelemetry-util-genai-evals
- mkdir -p dist
- cp ../../dist/util-genai-evals/* dist/
- hatch --no-interactive publish
needs:
- sign-util-genai-evals
rules:
- if: '$CI_COMMIT_TAG =~ /^util-genai-evals-v[0-9]+\.[0-9]+\.[0-9]+.*/'

deploy-genai-emitters-splunk:
stage: deploy
script:
- pip install hatch keyrings.alt
- cd util/opentelemetry-util-genai-emitters-splunk
- mkdir -p dist
- cp ../../dist/genai-emitters-splunk/* dist/
- hatch --no-interactive publish
needs:
- sign-genai-emitters-splunk
rules:
- if: '$CI_COMMIT_TAG =~ /^genai-emitters-splunk-v[0-9]+\.[0-9]+\.[0-9]+.*/'

deploy-genai-evals-deepeval:
stage: deploy
script:
- pip install hatch keyrings.alt
- cd util/opentelemetry-util-genai-evals-deepeval
- mkdir -p dist
- cp ../../dist/genai-evals-deepeval/* dist/
- hatch --no-interactive publish
needs:
- sign-genai-evals-deepeval
rules:
- if: '$CI_COMMIT_TAG =~ /^genai-evals-deepeval-v[0-9]+\.[0-9]+\.[0-9]+.*/'

deploy-instrumentation-langchain:
stage: deploy
script:
- pip install hatch keyrings.alt
- cd instrumentation-genai/opentelemetry-instrumentation-langchain
- mkdir -p dist
- cp ../../dist/instrumentation-langchain/* dist/
- hatch --no-interactive publish
needs:
- sign-instrumentation-langchain
rules:
- if: '$CI_COMMIT_TAG =~ /^instrumentation-langchain-v[0-9]+\.[0-9]+\.[0-9]+.*/'

# Docker image publishing (if needed for any of these packages)
publish-docker-image-util-genai:
stage: post-release
rules:
- if: '$CI_COMMIT_TAG =~ /^util-genai-v[0-9]+\.[0-9]+\.[0-9]+(-alpha)?.*/'
- when: manual
variables:
SIGNING_SERVICE_ADDR: "https://signing.prod.svc.splunk8s.io"
PACKAGE_NAME: "util-genai"
PACKAGE_PATH: "util/opentelemetry-util-genai"
PYPI_PACKAGE_NAME: "splunk-otel-util-genai"
id_tokens:
CI_JOB_JWT:
aud:
- $CICD_VAULT_ADDR
- $SIGNING_SERVICE_ADDR
before_script:
- ./docker/install-docker-deps.sh
- ./docker/install-gh-deps.sh
script:
- ./docker/publish-docker-image.sh "$CI_COMMIT_TAG" "$PACKAGE_NAME" "$PYPI_PACKAGE_NAME"

publish-docker-image-instrumentation-langchain:
stage: post-release
rules:
- if: '$CI_COMMIT_TAG =~ /^instrumentation-langchain-v[0-9]+\.[0-9]+\.[0-9]+(-alpha)?.*/'
- when: manual
variables:
SIGNING_SERVICE_ADDR: "https://signing.prod.svc.splunk8s.io"
PACKAGE_NAME: "instrumentation-langchain"
PACKAGE_PATH: "instrumentation-genai/opentelemetry-instrumentation-langchain"
PYPI_PACKAGE_NAME: "splunk-otel-instrumentation-langchain"
id_tokens:
CI_JOB_JWT:
aud:
- $CICD_VAULT_ADDR
- $SIGNING_SERVICE_ADDR
before_script:
- ./docker/install-docker-deps.sh
- ./docker/install-gh-deps.sh
script:
- ./docker/publish-docker-image.sh "$CI_COMMIT_TAG" "$PACKAGE_NAME" "$PYPI_PACKAGE_NAME"
Loading
Loading