diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ae5d8d2409de80981609ffff879cf480b6f7cc9d..568318c8a22c825dfbd50b392ba2aa4ed3bed9d4 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -59,7 +59,6 @@ stages: ### Lint microservices ## -# lint-agent: image: node:18 extends: .distributed @@ -77,22 +76,73 @@ lint-agent: script: - yarn nx run agent:lint --parallel=3 -# lint-engine: -# image: node:18 -# extends: .distributed -# tags: -# - amd64-docker -# rules: -# - if: '$PIPELINE_TRIGGERED != "yes"' -# changes: -# - apps/engine/* -# - apps/engine/deployment/* -# - apps/engine/src/* -# - apps/engine/src/app/* -# - if: '$CI_COMMIT_TAG' -# stage: lint -# script: -# - yarn nx run agent:lint --parallel=3 +lint-attestation-manager: + image: node:18 + extends: .distributed + tags: + - amd64-docker + stage: lint + rules: + - if: '$PIPELINE_TRIGGERED != "yes" && $CI_PIPELINE_SOURCE != "merge_request_event"' + changes: + - apps/attestation-manager/* + - apps/attestation-manager/deployment/* + - apps/attestation-manager/src/* + - apps/attestation-manager/src/app/* + - if: '$CI_COMMIT_TAG' + script: + - yarn nx run attestation-manager:lint --parallel=3 + +lint-connection-manager: + image: node:18 + extends: .distributed + tags: + - amd64-docker + stage: lint + rules: + - if: '$PIPELINE_TRIGGERED != "yes" && $CI_PIPELINE_SOURCE != "merge_request_event"' + changes: + - apps/connection-manager/* + - apps/connection-manager/deployment/* + - apps/connection-manager/src/* + - apps/connection-manager/src/app/* + - if: '$CI_COMMIT_TAG' + script: + - yarn nx run connection-manager:lint --parallel=3 + +lint-gateway: + image: node:18 + extends: .distributed + tags: + - amd64-docker + stage: lint + rules: + - if: '$PIPELINE_TRIGGERED != "yes" && $CI_PIPELINE_SOURCE != "merge_request_event"' + changes: + - apps/gateway/* + - apps/gateway/deployment/* + - apps/gateway/src/* + - apps/gateway/src/app/* + - if: '$CI_COMMIT_TAG' + script: + - yarn nx run gateway:lint --parallel=3 + +lint-proof-manager: + image: node:18 + extends: .distributed + tags: + - amd64-docker + stage: lint + rules: + - if: '$PIPELINE_TRIGGERED != "yes" && $CI_PIPELINE_SOURCE != "merge_request_event"' + changes: + - apps/proof-manager/* + - apps/proof-manager/deployment/* + - apps/proof-manager/src/* + - apps/proof-manager/src/app/* + - if: '$CI_COMMIT_TAG' + script: + - yarn nx run proof-manager:lint --parallel=3 ## ### Test microservices @@ -115,22 +165,73 @@ test-agent: script: - yarn nx run agent:test --configuration=ci --parallel=3 -# test-engine: -# image: node:18 -# extends: .distributed -# tags: -# - amd64-docker -# rules: -# - if: '$PIPELINE_TRIGGERED != "yes"' -# changes: -# - apps/engine/* -# - apps/engine/deployment/* -# - apps/engine/src/* -# - apps/engine/src/app/* -# - if: '$CI_COMMIT_TAG' -# stage: test -# script: -# - yarn nx run agent:test --configuration=ci --parallel=3 +test-attestation-manager: + image: node:18 + extends: .distributed + tags: + - amd64-docker + rules: + - if: '$PIPELINE_TRIGGERED != "yes"' + changes: + - apps/attestation-manager/* + - apps/attestation-manager/deployment/* + - apps/attestation-manager/src/* + - apps/attestation-manager/src/app/* + - if: '$CI_COMMIT_TAG' + stage: test + script: + - yarn nx run attestation-manager:test --configuration=ci --parallel=3 + +test-connection-manager: + image: node:18 + extends: .distributed + tags: + - amd64-docker + rules: + - if: '$PIPELINE_TRIGGERED != "yes"' + changes: + - apps/connection-manager/* + - apps/connection-manager/deployment/* + - apps/connection-manager/src/* + - apps/connection-manager/src/app/* + - if: '$CI_COMMIT_TAG' + stage: test + script: + - yarn nx run connection-manager:test --configuration=ci --parallel=3 + +test-gateway: + image: node:18 + extends: .distributed + tags: + - amd64-docker + rules: + - if: '$PIPELINE_TRIGGERED != "yes"' + changes: + - apps/gateway/* + - apps/gateway/deployment/* + - apps/gateway/src/* + - apps/gateway/src/app/* + - if: '$CI_COMMIT_TAG' + stage: test + script: + - yarn nx run gateway:test --configuration=ci --parallel=3 + +test-proof-manager: + image: node:18 + extends: .distributed + tags: + - amd64-docker + rules: + - if: '$PIPELINE_TRIGGERED != "yes"' + changes: + - apps/proof-manager/* + - apps/proof-manager/deployment/* + - apps/proof-manager/src/* + - apps/proof-manager/src/app/* + - if: '$CI_COMMIT_TAG' + stage: test + script: + - yarn nx run proof-manager:test --configuration=ci --parallel=3 ## ### Bare microservice build @@ -160,31 +261,111 @@ build-agent: - ./yarn.lock expire_in: 1 day -# build-engine: -# image: node:18 -# extends: .distributed -# rules: -# - if: '$PIPELINE_TRIGGERED != "yes"' -# changes: -# - apps/engine/* -# - apps/engine/deployment/* -# - apps/engine/src/* -# - apps/engine/src/app/* -# - if: '$CI_COMMIT_TAG' -# tags: -# - amd64-docker -# stage: build -# script: -# # parallel is a CPU core count -# - yarn nx run agent:build:production --parallel=3 +build-attestation-manager: + image: node:18 + extends: .distributed + rules: + - if: '$PIPELINE_TRIGGERED != "yes" && $CI_PIPELINE_SOURCE != "merge_request_event"' + changes: + - apps/attestation-manager/* + - apps/attestation-manager/deployment/* + - apps/attestation-manager/src/* + - apps/attestation-manager/src/app/* + - if: '$CI_COMMIT_TAG' + tags: + - amd64-docker + stage: build + script: + # parallel is a CPU core count + - yarn nx run attestation-manager:build:production --parallel=3 + artifacts: + paths: + - ./dist + - ./package.json + - ./yarn.lock + expire_in: 1 day + +build-connection-manager: + image: node:18 + extends: .distributed + rules: + - if: '$PIPELINE_TRIGGERED != "yes" && $CI_PIPELINE_SOURCE != "merge_request_event"' + changes: + - apps/connection-manager/* + - apps/connection-manager/deployment/* + - apps/connection-manager/src/* + - apps/connection-manager/src/app/* + - if: '$CI_COMMIT_TAG' + tags: + - amd64-docker + stage: build + script: + # parallel is a CPU core count + - yarn nx run connection-manager:build:production --parallel=3 + artifacts: + paths: + - ./dist + - ./package.json + - ./yarn.lock + expire_in: 1 day + +build-gateway: + image: node:18 + extends: .distributed + rules: + - if: '$PIPELINE_TRIGGERED != "yes" && $CI_PIPELINE_SOURCE != "merge_request_event"' + changes: + - apps/gateway/* + - apps/gateway/deployment/* + - apps/gateway/src/* + - apps/gateway/src/app/* + - if: '$CI_COMMIT_TAG' + tags: + - amd64-docker + stage: build + script: + # parallel is a CPU core count + - yarn nx run gateway:build:production --parallel=3 + artifacts: + paths: + - ./dist + - ./package.json + - ./yarn.lock + expire_in: 1 day + +build-proof-manager: + image: node:18 + extends: .distributed + rules: + - if: '$PIPELINE_TRIGGERED != "yes" && $CI_PIPELINE_SOURCE != "merge_request_event"' + changes: + - apps/proof-manager/* + - apps/proof-manager/deployment/* + - apps/proof-manager/src/* + - apps/proof-manager/src/app/* + - if: '$CI_COMMIT_TAG' + tags: + - amd64-docker + stage: build + script: + # parallel is a CPU core count + - yarn nx run proof-manager:build:production --parallel=3 + artifacts: + paths: + - ./dist + - ./package.json + - ./yarn.lock + expire_in: 1 day ## ### Docker build microservices ## -docker-build-agent: - extends: .docker-build-agent +docker-agent: + extends: .docker-build stage: docker + variables: + APP: agent rules: - if: '$PIPELINE_TRIGGERED == "no" && $CI_PIPELINE_SOURCE != "merge_request_event"' changes: @@ -194,25 +375,71 @@ docker-build-agent: - apps/agent/src/app/* - if: '$CI_COMMIT_TAG' -# docker-build-engine: -# extends: .docker-build-engine -# stage: docker -# rules: -# - if: '$PIPELINE_TRIGGERED == "no"' -# changes: -# - apps/engine/* -# - apps/engine/deployment/* -# - apps/engine/src/* -# - apps/engine/src/app/* -# - if: '$CI_COMMIT_TAG' +docker-attestation-manager: + extends: .docker-build + stage: docker + variables: + APP: attestation-manager + rules: + - if: '$PIPELINE_TRIGGERED == "no" && $CI_PIPELINE_SOURCE != "merge_request_event"' + changes: + - apps/attestation-manager/* + - apps/attestation-manager/deployment/* + - apps/attestation-manager/src/* + - apps/attestation-manager/src/app/* + - if: '$CI_COMMIT_TAG' + +docker-connection-manager: + extends: .docker-build + stage: docker + variables: + APP: connection-manager + rules: + - if: '$PIPELINE_TRIGGERED == "no" && $CI_PIPELINE_SOURCE != "merge_request_event"' + changes: + - apps/connection-manager/* + - apps/connection-manager/deployment/* + - apps/connection-manager/src/* + - apps/connection-manager/src/app/* + - if: '$CI_COMMIT_TAG' + +docker-gateway: + extends: .docker-build + stage: docker + variables: + APP: gateway + rules: + - if: '$PIPELINE_TRIGGERED == "no" && $CI_PIPELINE_SOURCE != "merge_request_event"' + changes: + - apps/gateway/* + - apps/gateway/deployment/* + - apps/gateway/src/* + - apps/gateway/src/app/* + - if: '$CI_COMMIT_TAG' + +docker-proof-manager: + extends: .docker-build + stage: docker + variables: + APP: proof-manager + rules: + - if: '$PIPELINE_TRIGGERED == "no" && $CI_PIPELINE_SOURCE != "merge_request_event"' + changes: + - apps/proof-manager/* + - apps/proof-manager/deployment/* + - apps/proof-manager/src/* + - apps/proof-manager/src/app/* + - if: '$CI_COMMIT_TAG' ## ### Push to registries ## google-image-agent: - extends: .agent-cloud + extends: .cloud stage: registries + variables: + APP: agent rules: - if: '$CI_COMMIT_TAG == null && $PIPELINE_TRIGGERED == "no" && $CI_PIPELINE_SOURCE != "merge_request_event"' changes: @@ -221,18 +448,62 @@ google-image-agent: - apps/agent/src/* - apps/agent/src/app/* - if: '$CI_COMMIT_TAG' + +google-image-attestation-manager: + extends: .cloud + stage: registries + variables: + APP: attestation-manager + rules: + - if: '$CI_COMMIT_TAG == null && $PIPELINE_TRIGGERED == "no" && $CI_PIPELINE_SOURCE != "merge_request_event"' + changes: + - apps/attestation-manager/* + - apps/attestation-manager/deployment/* + - apps/attestation-manager/src/* + - apps/attestation-manager/src/app/* + - if: '$CI_COMMIT_TAG' -# google-image-engine: -# extends: .engine-cloud -# stage: registries -# rules: -# - if: '$CI_COMMIT_TAG == null && $PIPELINE_TRIGGERED == "no"' -# changes: -# - apps/engine/* -# - apps/engine/deployment/* -# - apps/engine/src/* -# - apps/engine/src/app/* -# - if: '$CI_COMMIT_TAG' +google-image-connection-manager: + extends: .cloud + stage: registries + variables: + APP: connection-manager + rules: + - if: '$CI_COMMIT_TAG == null && $PIPELINE_TRIGGERED == "no" && $CI_PIPELINE_SOURCE != "merge_request_event"' + changes: + - apps/connection-manager/* + - apps/connection-manager/deployment/* + - apps/connection-manager/src/* + - apps/connection-manager/src/app/* + - if: '$CI_COMMIT_TAG' + +google-image-gateway: + extends: .cloud + stage: registries + variables: + APP: gateway + rules: + - if: '$CI_COMMIT_TAG == null && $PIPELINE_TRIGGERED == "no" && $CI_PIPELINE_SOURCE != "merge_request_event"' + changes: + - apps/gateway/* + - apps/gateway/deployment/* + - apps/gateway/src/* + - apps/gateway/src/app/* + - if: '$CI_COMMIT_TAG' + +google-image-proof-manager: + extends: .cloud + stage: registries + variables: + APP: proof-manager + rules: + - if: '$CI_COMMIT_TAG == null && $PIPELINE_TRIGGERED == "no" && $CI_PIPELINE_SOURCE != "merge_request_event"' + changes: + - apps/proof-manager/* + - apps/proof-manager/deployment/* + - apps/proof-manager/src/* + - apps/proof-manager/src/app/* + - if: '$CI_COMMIT_TAG' ## ### Configure helm @@ -250,17 +521,53 @@ agent: - apps/agent/src/app/* - if: '$CI_COMMIT_TAG' -# engine: -# extends: .chart-trigger-engine -# stage: helm -# rules: -# - if: '$CI_COMMIT_TAG == null && $PIPELINE_TRIGGERED == "no"' -# changes: -# - apps/engine/* -# - apps/engine/deployment/* -# - apps/engine/src/* -# - apps/engine/src/app/* -# - if: '$CI_COMMIT_TAG' +attestation-manager: + extends: .chart-trigger-attestation-manager + stage: helm + rules: + - if: '$CI_COMMIT_TAG == null && $PIPELINE_TRIGGERED == "no" && $CI_PIPELINE_SOURCE != "merge_request_event"' + changes: + - apps/attestation-manager/* + - apps/attestation-manager/deployment/* + - apps/attestation-manager/src/* + - apps/attestation-manager/src/app/* + - if: '$CI_COMMIT_TAG' + +connection-manager: + extends: .chart-trigger-connection-manager + stage: helm + rules: + - if: '$CI_COMMIT_TAG == null && $PIPELINE_TRIGGERED == "no" && $CI_PIPELINE_SOURCE != "merge_request_event"' + changes: + - apps/connection-manager/* + - apps/connection-manager/deployment/* + - apps/connection-manager/src/* + - apps/connection-manager/src/app/* + - if: '$CI_COMMIT_TAG' + +gateway: + extends: .chart-trigger-gateway + stage: helm + rules: + - if: '$CI_COMMIT_TAG == null && $PIPELINE_TRIGGERED == "no" && $CI_PIPELINE_SOURCE != "merge_request_event"' + changes: + - apps/gateway/* + - apps/gateway/deployment/* + - apps/gateway/src/* + - apps/gateway/src/app/* + - if: '$CI_COMMIT_TAG' + +proof-manager: + extends: .chart-trigger-proof-manager + stage: helm + rules: + - if: '$CI_COMMIT_TAG == null && $PIPELINE_TRIGGERED == "no" && $CI_PIPELINE_SOURCE != "merge_request_event"' + changes: + - apps/proof-manager/* + - apps/proof-manager/deployment/* + - apps/proof-manager/src/* + - apps/proof-manager/src/app/* + - if: '$CI_COMMIT_TAG' ## ### Deploy automatically on Test Environment @@ -280,19 +587,61 @@ agent-test ocm-two: - if: '$PIPELINE_TRIGGERED == "yes" && $APP == "agent" && $CI_PIPELINE_SOURCE != "merge_request_event"' when: manual -# engine-test ocm: -# stage: deploy-test -# extends: .test-engine-ocm-one -# rules: -# - if: '$PIPELINE_TRIGGERED == "yes" && $APP == "engine"' -# when: manual +attestation-manager-test ocm: + stage: deploy-test + extends: .test-attestation-manager-ocm-one + rules: + - if: '$PIPELINE_TRIGGERED == "yes" && $APP == "attestation-manager" && $CI_PIPELINE_SOURCE != "merge_request_event"' + when: manual -# engine-test ocm-two: -# stage: deploy-test -# extends: .test-engine-ocm-two -# rules: -# - if: '$PIPELINE_TRIGGERED == "yes" && $APP == "engine"' -# when: manual +attestation-manager-test ocm-two: + stage: deploy-test + extends: .test-attestation-manager-ocm-two + rules: + - if: '$PIPELINE_TRIGGERED == "yes" && $APP == "attestation-manager" && $CI_PIPELINE_SOURCE != "merge_request_event"' + when: manual + +connection-manager-test ocm: + stage: deploy-test + extends: .test-connection-manager-ocm-one + rules: + - if: '$PIPELINE_TRIGGERED == "yes" && $APP == "connection-manager" && $CI_PIPELINE_SOURCE != "merge_request_event"' + when: manual + +connection-manager-test ocm-two: + stage: deploy-test + extends: .test-connection-manager-ocm-two + rules: + - if: '$PIPELINE_TRIGGERED == "yes" && $APP == "connection-manager" && $CI_PIPELINE_SOURCE != "merge_request_event"' + when: manual + +gateway-test ocm: + stage: deploy-test + extends: .test-gateway-ocm-one + rules: + - if: '$PIPELINE_TRIGGERED == "yes" && $APP == "gateway" && $CI_PIPELINE_SOURCE != "merge_request_event"' + when: manual + +gateway-test ocm-two: + stage: deploy-test + extends: .test-gateway-ocm-two + rules: + - if: '$PIPELINE_TRIGGERED == "yes" && $APP == "gateway" && $CI_PIPELINE_SOURCE != "merge_request_event"' + when: manual + +proof-manager-test ocm: + stage: deploy-test + extends: .test-proof-manager-ocm-one + rules: + - if: '$PIPELINE_TRIGGERED == "yes" && $APP == "proof-manager" && $CI_PIPELINE_SOURCE != "merge_request_event"' + when: manual + +proof-manager-test ocm-two: + stage: deploy-test + extends: .test-proof-manager-ocm-two + rules: + - if: '$PIPELINE_TRIGGERED == "yes" && $APP == "proof-manager" && $CI_PIPELINE_SOURCE != "merge_request_event"' + when: manual ## ### Deploy on prod @@ -312,20 +661,61 @@ agent-prod ocm-two: - if: '$PIPELINE_TRIGGERED == "yes" && $APP == "agent" && $CI_PIPELINE_SOURCE != "merge_request_event" && $MAIN_PROD == "yes" && $GITLAB_USER_LOGIN =~ $AUTORIZED_USERS' when: manual -# engine-prod ocm: -# stage: deploy-prod -# extends: .prod-engine-ocm-one -# rules: -# - if: '$PIPELINE_TRIGGERED == "yes" && $APP == "engine"' -# when: manual +attestation-manager-prod ocm: + stage: deploy-prod + extends: .prod-attestation-manager-ocm-one + rules: + - if: '$PIPELINE_TRIGGERED == "yes" && $APP == "attestation-manager" && $CI_PIPELINE_SOURCE != "merge_request_event" && $MAIN_PROD == "yes" && $GITLAB_USER_LOGIN =~ $AUTORIZED_USERS' + when: manual -# engine-prod ocm-two: -# stage: deploy-prod -# extends: .prod-engine-ocm-two -# rules: -# - if: '$PIPELINE_TRIGGERED == "yes" && $APP == "engine"' -# when: manual +attestation-manager-prod ocm-two: + stage: deploy-prod + extends: .prod-attestation-manager-ocm-two + rules: + - if: '$PIPELINE_TRIGGERED == "yes" && $APP == "attestation-manager" && $CI_PIPELINE_SOURCE != "merge_request_event" && $MAIN_PROD == "yes" && $GITLAB_USER_LOGIN =~ $AUTORIZED_USERS' + when: manual +connection-manager-prod ocm: + stage: deploy-prod + extends: .prod-connection-manager-ocm-one + rules: + - if: '$PIPELINE_TRIGGERED == "yes" && $APP == "connection-manager" && $CI_PIPELINE_SOURCE != "merge_request_event" && $MAIN_PROD == "yes" && $GITLAB_USER_LOGIN =~ $AUTORIZED_USERS' + when: manual + +connection-manager-prod ocm-two: + stage: deploy-prod + extends: .prod-connection-manager-ocm-two + rules: + - if: '$PIPELINE_TRIGGERED == "yes" && $APP == "connection-manager" && $CI_PIPELINE_SOURCE != "merge_request_event" && $MAIN_PROD == "yes" && $GITLAB_USER_LOGIN =~ $AUTORIZED_USERS' + when: manual + +gateway-prod ocm: + stage: deploy-prod + extends: .prod-gateway-ocm-one + rules: + - if: '$PIPELINE_TRIGGERED == "yes" && $APP == "gateway" && $CI_PIPELINE_SOURCE != "merge_request_event" && $MAIN_PROD == "yes" && $GITLAB_USER_LOGIN =~ $AUTORIZED_USERS' + when: manual + +gateway-prod ocm-two: + stage: deploy-prod + extends: .prod-gateway-ocm-two + rules: + - if: '$PIPELINE_TRIGGERED == "yes" && $APP == "gateway" && $CI_PIPELINE_SOURCE != "merge_request_event" && $MAIN_PROD == "yes" && $GITLAB_USER_LOGIN =~ $AUTORIZED_USERS' + when: manual + +proof-manager-prod ocm: + stage: deploy-prod + extends: .prod-proof-manager-ocm-one + rules: + - if: '$PIPELINE_TRIGGERED == "yes" && $APP == "proof-manager" && $CI_PIPELINE_SOURCE != "merge_request_event" && $MAIN_PROD == "yes" && $GITLAB_USER_LOGIN =~ $AUTORIZED_USERS' + when: manual + +proof-manager-prod ocm-two: + stage: deploy-prod + extends: .prod-proof-manager-ocm-two + rules: + - if: '$PIPELINE_TRIGGERED == "yes" && $APP == "proof-manager" && $CI_PIPELINE_SOURCE != "merge_request_event" && $MAIN_PROD == "yes" && $GITLAB_USER_LOGIN =~ $AUTORIZED_USERS' + when: manual ## ### Deploy manual on Stage Environment