include:
  - project: 'gaiax/helpers/mono-helpers'
    file:
      - ocm-engine.yml

stages:
  - lint
  - test
  - build
  - release
  - docker
  - registries
  - helm
  - deploy-test
  - deploy-prod
# Lint microservices

lint-agent:
  extends: .lint-agent
  stage: lint

# lint-dashboard:
#   extends: .lint-dashboard
#   stage: lint

# lint-attestation-manager:
#   extends: .lint-attestation-manager
#   stage: lint

# lint-connection-manager:
#   extends: .lint-connection-manager
#   stage: lint

# lint-proof-manager:
#   extends: .lint-proof-manager
#   stage: lint

# lint-gateway:
#   extends: .lint-gateway
#   stage: lint

# Test microservices

test-agent:
  extends: .test-agent
  stage: test

# test-dashboard:
#   extends: .test-dashboard
#   stage: test

# test-attestation-manager:
#   extends: .test-attestation-manager
#   stage: test

# test-connection-manager:
#   extends: .test-connection-manager
#   stage: test

# test-proof-manager:
#   extends: .test-proof-manager
#   stage: test

# test-gateway:
#   extends: .test-gateway
#   stage: test

# Bare microservice build

build-agent:
  extends: .build-agent
  stage: build

build-dashboard:
  extends: .build-dashboard
  stage: build

# build-attestation-manager:
#   extends: .build-attestation-manager
#   stage: build

# build-connection-manager:
#   extends: .build-connection-manager
#   stage: build

# build-proof-manager:
#   extends: .build-proof-manager
#   stage: build

# build-gateway:
#   extends: .build-gateway
#   stage: build

# Docker build microservices

docker-agent:
  extends: .docker-agent
  stage: docker

docker-dashboard:
  extends: .docker-dashboard
  stage: docker

# docker-attestation-manager:
#   extends: .docker-attestation-manager
#   stage: docker

# docker-connection-manager:
#   extends: .docker-connection-manager
#   stage: docker

# docker-proof-manager:
#   extends: .docker-proof-manager
#   stage: docker

# docker-gateway:
#   extends: .docker-gateway
#   stage: docker

# Push to registries

registry-agent:
  extends: .registry-agent
  stage: registries

registry-dashboard:
  extends: .registry-dashboard
  stage: registries

# registry-attestation-manager:
#   extends: .registry-attestation-manager
#   stage: registries

# registry-connection-manager:
#   extends: .registry-connection-manager
#   stage: registries

# registry-proof-manager:
#   extends: .registry-proof-manager
#   stage: registries

# registry-gateway:
#   extends: .registry-gateway
#   stage: registries

# Configure helm

helm-agent:
  extends: .helm-agent
  stage: helm

helm-dashboard:
  extends: .helm-dashboard
  stage: helm

# helm-attestation-manager:
#   extends: .helm-attestation-manager
#   stage: helm

# helm-connection-manager:
#   extends: .helm-connection-manager
#   stage: helm

# helm-proof-manager:
#   extends: .helm-proof-manager
#   stage: helm

# helm-gateway:
#   extends: .helm-gateway
#   stage: helm

deploy agent hin:
  extends: .deploy-agent-hin-main
  stage: deploy-test

deploy agent hin tagged:
  extends: .deploy-agent-hin-tag
  stage: deploy-test

deploy agent ocm:
  extends: .deploy-agent-ocm-main
  stage: deploy-test

deploy agent ocm tagged:
  extends: .deploy-agent-ocm-main-tag
  stage: deploy-test

deploy agent ocm test:
  extends: .deploy-agent-ocm-test
  stage: deploy-test

deploy agent ocm test tagged:
  extends: .deploy-agent-ocm-test-tag
  stage: deploy-test

deploy dashboard ocm:
  extends: .deploy-dashboard-ocm-main
  stage: deploy-test

deploy dashboard ocm tagged:
  extends: .deploy-dashboard-ocm-main-tag
  stage: deploy-test

deploy dashboard ocm test:
  extends: .deploy-dashboard-ocm-test
  stage: deploy-test

deploy dashboard ocm test tagged:
  extends: .deploy-dashboard-ocm-test-tag
  stage: deploy-test

deploy agent cloud auth:
  extends: .deploy-agent-cloud-auth-main
  stage: deploy-prod

deploy agent cloud auth tagged:
  extends: .deploy-agent-cloud-auth-tag
  stage: deploy-prod

# deploy attestation ocm:
#   extends: .deploy-attestation-manager-ocm-main
#   stage: deploy-test

# deploy attestation ocm tagged:
#   extends: .deploy-attestation-manager-ocm-main-tag
#   stage: deploy-test

# deploy attestation ocm test:
#   extends: .deploy-attestation-manager-ocm-test
#   stage: deploy-test

# deploy attestation ocm test tagged:
#   extends: .deploy-attestation-manager-ocm-test-tag
#   stage: deploy-test

# deploy connection ocm:
#   extends: .deploy-connection-manager-ocm-main
#   stage: deploy-test

# deploy connection ocm tagged:
#   extends: .deploy-connection-manager-ocm-main-tag
#   stage: deploy-test

# deploy connection ocm test:
#   extends: .deploy-connection-manager-ocm-test
#   stage: deploy-test

# deploy connection ocm test tagged:
#   extends: .deploy-connection-manager-ocm-test-tag
#   stage: deploy-test

# deploy proof ocm:
#   extends: .deploy-proof-manager-ocm-main
#   stage: deploy-test

# deploy proof ocm tagged:
#   extends: .deploy-proof-manager-ocm-main-tag
#   stage: deploy-test

# deploy proof ocm test:
#   extends: .deploy-proof-manager-ocm-test
#   stage: deploy-test

# deploy proof ocm test tagged:
#   extends: .deploy-proof-manager-ocm-test-tag
#   stage: deploy-test

# deploy gateway ocm:
#   extends: .deploy-gateway-ocm-main
#   stage: deploy-test

# deploy gateway ocm tagged:
#   extends: .deploy-gateway-ocm-main-tag
#   stage: deploy-test

# deploy gateway ocm test:
#   extends: .deploy-gateway-ocm-test
#   stage: deploy-test

# deploy gateway ocm test tagged:
#   extends: .deploy-gateway-ocm-test-tag
#   stage: deploy-test

commit lint:
  extends: .commit-lint
  stage: lint

changelog:
  extends: .changelog
  stage: release