include:
  - project: '${HELPERS_PATH}'
    file: '${HELPERS_FILE}'

stages:
  - lint
  - test
  - build
  - release
  - docker
  - registries
  - helm
  - deploy-test

# Lint microservices

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-ssi-abstraction:
  extends: .lint-ssi-abstraction
  stage: lint

# Test microservices

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-ssi-abstraction:
  extends: .test-ssi-abstraction
  stage: test

# Bare microservice 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-ssi-abstraction:
  extends: .build-ssi-abstraction
  stage: build

# Docker build microservices

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-ssi-abstraction:
  extends: .docker-ssi-abstraction
  stage: docker

# Push to 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-ssi-abstraction:
  extends: .registry-ssi-abstraction
  stage: registries

# Configure 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-ssi-abstraction:
  extends: .helm-ssi-abstraction
  stage: helm

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 ssi-abstraction ocm:
  extends: .deploy-ssi-abstraction-ocm-main
  stage: deploy-test

deploy ssi-abstraction ocm tagged:
  extends: .deploy-ssi-abstraction-ocm-main-tag
  stage: deploy-test

deploy ssi-abstraction ocm test:
  extends: .deploy-ssi-abstraction-ocm-test
  stage: deploy-test

deploy ssi-abstraction ocm test tagged:
  extends: .deploy-ssi-abstraction-ocm-test-tag
  stage: deploy-test

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

changelog:
  extends: .changelog
  stage: release
