Files
Orchestrator/bahn/db-planet-mcp-server/.gitlab-ci.yml
T
ankn a5f8fb49ab Migrate all repos into monorepo context folders
Bahn: aisupport, Analyse-O2C-C2S, awesome-bahn-mcp-servers, beam-mcp,
      Confluence_Bot, db-planet-mcp-server, O2C-Harness, project-audit,
      Projekt-KIQ-HP, teamlandkarte-mcp
Dhive: Jury-Voting
Privat: CV, NoteGraph (NOTE: NoteGraph needs complete redo after consolidation)
Shared: AI-Orchestrator, OrgMyLife, power_skills_and_more
Shared/references: symphony (read-only)

Bahn repos remain available as independent remotes - this monorepo
pulls them in via subtree, the originals are untouched.
2026-06-30 20:39:52 +02:00

178 lines
5.9 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ============================================================
# GitLab CI build & release OCI image via pipeship + deploy
# ============================================================
# Uses the pipeship "release_oci_image" product which bundles:
# stages, build/scan/promote_oci_image, semantic_release, etc.
# See: https://bridge.pipeship.comp.db.de/modules/?searchKeyword=release_oci_image&filterTypeSubmit=product
# ============================================================
include:
- remote: https://bahnhub.tech.rz.db.de/artifactory/pipeship-generic-release-local/canary/products/release_oci_image/4.9.96-20250909050014-9d6e6c21.yaml
variables:
PIPESHIP_PRODUCT: "release_oci_image"
PIPESHIP_VERSION: "$CI_DEFAULT_BRANCH"
# Version schema
PGV_SCHEMA: "stateful-semver"
# Enable semantic-release
SEMANTIC_RELEASE_ENABLED: "true"
SR_PLUGINS: "@semantic-release/commit-analyzer,@semantic-release/release-notes-generator,@semantic-release/gitlab"
# Disable unused jobs
RST_JOB_DISABLED: "true"
LINT_CODE_JOB_DISABLED: "true"
SDC_JOB_DISABLED: "true"
SCAN_SONARQUBE_JOB_DISABLED: "true"
SSQ_JOB_DISABLED: "true"
SSG_JOB_DISABLED: "true"
CAON_JOB_DISABLED: "true"
# Version file for promote_oci_image
POI_SOURCE_IMAGE_VERSION_FILE: "VERSION"
POI_DESTINATION_IMAGE_VERSION_FILE: "VERSION"
POI_TAG_LATEST: "true"
# Use dotenv artifact from build_oci_image
SOIST_USE_URI_ARTIFACT: "true"
SOIT_USE_URI_ARTIFACT: "true"
POI_USE_URI_ARTIFACT: "true"
CAON_USE_URI_ARTIFACT: "true"
CAON_USE_VERSION_FILE: "false"
# Use Aqua scanner
AQUA_ENABLED: "true"
# Node base image for test jobs
NODE_IMAGE: "db-container-lib-docker-release-local.bahnhub.tech.rz.db.de/node:22-alpine"
# Azure subscriptions
SUBSCRIPTION_DEV: "245822e7-9f8b-4c8a-993b-e9ae726c9c42"
SUBSCRIPTION_IAT: "245822e7-9f8b-4c8a-993b-e9ae726c9c42"
# Proxy settings
HTTP_PROXY: "http://webproxy.comp.db.de:8080"
HTTPS_PROXY: "http://webproxy.comp.db.de:8080"
http_proxy: "http://webproxy.comp.db.de:8080"
https_proxy: "http://webproxy.comp.db.de:8080"
no_proxy: "172.30.0.1,127.0.0.1,localhost,cluster.local,db.de,169.254.169.254"
# ── Code quality gate (lint + unit tests) ─────────────────────
code_quality:
stage: code_analysis
image: $NODE_IMAGE
tags:
- dev
rules:
- if: $CI_MERGE_REQUEST_ID
- if: $CI_COMMIT_REF_PROTECTED == "true"
script:
- npm ci --ignore-scripts
- npm run test
# ── Bicep validation (MR only) ───────────────────────────────
validate_bicep:
stage: code_analysis
image: mcr-docker-remote.bahnhub.tech.rz.db.de/azure-cli:2.76.0
tags:
- dev
script:
- az login --federated-token "$(cat $AZURE_FEDERATED_TOKEN_FILE)" --service-principal -u $AZURE_CLIENT_ID -t $AZURE_TENANT_ID
- az account set --subscription $SUBSCRIPTION_DEV
- az deployment sub what-if --location westeurope --parameters infra/parameters/dev.bicepparam --parameters deployContainerApp=true --no-pretty-print
rules:
- if: $CI_MERGE_REQUEST_ID
# ── Job overrides (stages & runner tags) ──────────────────────
generate_version:
stage: init
tags:
- dev
submit_telemetry:
stage: init
tags:
- dev
scan_config_trivy:
stage: code_analysis
tags:
- dev
build_oci_image:
stage: build_image
tags:
- dev
needs:
- job: generate_version
optional: true
- job: code_quality
promote_oci_image:
stage: promote_image
tags:
- dev
rules:
- if: $CI_COMMIT_BRANCH == "main"
variables:
POI_USE_URI_ARTIFACT: "true"
POI_SOURCE_IMAGE_NAME: "generativeai-docker-stage-dev-local.bahnhub.tech.rz.db.de/db-planet-mcp-server"
POI_DESTINATION_IMAGE_NAME: "generativeai-docker-stage-iat-local.bahnhub.tech.rz.db.de/db-planet-mcp-server"
POI_DESTINATION_REGISTRY_CREDENTIALS_USER: "${GLOBAL_ARTIFACTORY_USER_STAGE}"
POI_DESTINATION_REGISTRY_CREDENTIALS_PASSWORD: "${GLOBAL_ARTIFACTORY_TOKEN_STAGE}"
- if: $CI_COMMIT_TAG
variables:
POI_SOURCE_IMAGE_NAME: "generativeai-docker-stage-dev-local.bahnhub.tech.rz.db.de/db-planet-mcp-server"
POI_DESTINATION_IMAGE_NAME: "generativeai-docker-prod-local.bahnhub.tech.rz.db.de/db-planet-mcp-server"
POI_SOURCE_IMAGE_VERSION: "${CI_PIPELINE_ID}"
POI_DESTINATION_IMAGE_VERSION: "${CI_COMMIT_TAG}"
POI_DESTINATION_REGISTRY_CREDENTIALS_USER: "${GLOBAL_ARTIFACTORY_USER_PROD}"
POI_DESTINATION_REGISTRY_CREDENTIALS_PASSWORD: "${GLOBAL_ARTIFACTORY_TOKEN_PROD}"
cleanup_artifactory_oci_nonprod:
stage: cleanup
tags:
- dev
# ── Deploy to Azure ───────────────────────────────────────────
.deploy_template:
image: mcr-docker-remote.bahnhub.tech.rz.db.de/azure-cli:2.76.0
stage: post_promote_image
tags:
- dev
script:
- az login --federated-token "$(cat $AZURE_FEDERATED_TOKEN_FILE)" --service-principal -u $AZURE_CLIENT_ID -t $AZURE_TENANT_ID
- az account set --subscription $DEPLOY_SUBSCRIPTION
- chmod +x ./infra/deploy.sh
- IMAGE_TAG=$(cat VERSION 2>/dev/null || echo "$CI_COMMIT_SHORT_SHA")
- ./infra/deploy.sh --environment $DEPLOY_ENVIRONMENT --image-tag "$IMAGE_TAG"
deploy_dev:
extends: .deploy_template
variables:
DEPLOY_ENVIRONMENT: "DEV"
DEPLOY_SUBSCRIPTION: $SUBSCRIPTION_DEV
rules:
- if: $CI_COMMIT_BRANCH == "develop"
needs:
- job: build_oci_image
artifacts: true
- job: generate_version
artifacts: true
optional: true
deploy_iat:
extends: .deploy_template
variables:
DEPLOY_ENVIRONMENT: "IAT"
DEPLOY_SUBSCRIPTION: $SUBSCRIPTION_IAT
rules:
- if: $CI_COMMIT_BRANCH == "main"
needs:
- job: promote_oci_image
artifacts: true
- job: generate_version
artifacts: true
optional: true