stages:
  - clone
  - build
  - deploy

clone_occmd:
  image: alpine/git
  stage: clone
  only:
    - main
  script:
    - git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.opencode.de/opencode-analyzer/occmd
  artifacts:
    paths:
      - occmd/
.base:
  image:
    name: gcr.io/kaniko-project/executor:debug
    entrypoint: [""]
  cache: {}
  tags:
    - "opencode-high"
  before_script:
    - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json

build_sha:
  extends: .base
  stage: build
  only:
    - main
  script:
    - /kaniko/executor --context "${CI_PROJECT_DIR}" --dockerfile "${CI_PROJECT_DIR}/Dockerfile" --destination "${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHORT_SHA}"
  dependencies:
    - clone_occmd

build_latest:
  extends: .base
  stage: build
  only:
    - main
  script:
    - /kaniko/executor --context "${CI_PROJECT_DIR}" --dockerfile "${CI_PROJECT_DIR}/Dockerfile" --destination "${CI_REGISTRY_IMAGE}:latest"
  dependencies:
    - clone_occmd

deploy:
  image: bitnami/kubectl
  before_script:
    - export KUBECONFIG=$KUBECONFIG_FILE
  stage: deploy
  only:
    - main
  script:
    - kubectl set image -f ./kubernetes/deployment.yaml b-dev-container=registry.opencode.de/opencode-analyzer/data-provider:${CI_COMMIT_SHORT_SHA} --namespace=fraunhofer --local -o yaml | kubectl apply --namespace=fraunhofer -f -