variables: REPO: "harbor.dvgd.rzd" PROD_NAME_API: "parr/parr-api" PROD_NAME_AIHIT: "parr/parr-aihit-syncher" PROD_NAME_ESPP_TEMPLATE: "parr/parr-espp-template-sync" PROD_NAME_GENERATOR_TEMPLATES: "parr/parr-generator-templates" PROD_NAME_ESPP_ORDER_LOADER: "parr/parr-espp-order-loader" PROD_NAME_ESPP_ORDER_MANAGER: "parr/parr-espp-order-manager" PROD_NAME_MASTER: "parr/parr-master" stages: - build - deploy ### API PROD ### prod_build: stage: build only: - /^v[0-9]+\.[0-9]+\.[0-9]+$/ except: - branches services: - name: docker:20.10.21-dind command: [ "--insecure-registry=10.99.253.167:8090", "--registry-mirror=http://10.99.253.167:8090", "--insecure-registry=10.99.253.167:8088", "--registry-mirror=http://10.99.253.167:8088", "--insecure-registry=harbor.dvgd.rzd", "--tls=false" ] variables: DOCKER_HOST: tcp://docker:2375 DOCKER_DRIVER: overlay2 DOCKER_TLS_CERTDIR: "" script: - IMAGE_VERSION=$(echo $CI_COMMIT_TAG | tr -d v) - docker build -t $REPO/$PROD_NAME_API:$CI_COMMIT_TAG -t $REPO/$PROD_NAME_API:latest -t $PROD_NAME_API:$CI_COMMIT_TAG -t $PROD_NAME_API:latest --build-arg app_version=$IMAGE_VERSION -f PARR.API/Dockerfile . - docker login -u $HARBOR_PUSH_USER -p $HARBOR_PUSH_PASS $REPO - docker push --all-tags $REPO/$PROD_NAME_API tags: - docker prod_deploy: stage: deploy environment: name: prod url: http://10.99.253.216:8082/api/v1/version only: - /^v[0-9]+\.[0-9]+\.[0-9]+$/ except: - branches script: - docker login -u $HARBOR_PULL_USER -p $HARBOR_PULL_PASS $REPO #- tag=$CI_COMMIT_TAG docker compose up -d - tag=$CI_COMMIT_TAG docker stack deploy -c docker-compose.yml parr-api --with-registry-auth parallel: matrix: - RUNNER: shell-api-swarm-01 #- RUNNER: shell-1 tags: - ${RUNNER} ### AIHIT PROD ### prod_aihit_build: stage: build only: - /^as[0-9]+\.[0-9]+\.[0-9]+$/ except: - branches services: - name: docker:20.10.21-dind command: [ "--insecure-registry=10.99.253.167:8090", "--registry-mirror=http://10.99.253.167:8090", "--insecure-registry=10.99.253.167:8088", "--registry-mirror=http://10.99.253.167:8088", "--insecure-registry=harbor.dvgd.rzd", "--tls=false" ] variables: DOCKER_HOST: tcp://docker:2375 DOCKER_DRIVER: overlay2 DOCKER_TLS_CERTDIR: "" script: - APP_VERSION=$(echo $CI_COMMIT_TAG | tr -d as) - IMAGE_VERSION=$(echo $CI_COMMIT_TAG | sed 's/as/v/g') - docker build -t $REPO/$PROD_NAME_AIHIT:$IMAGE_VERSION -t $REPO/$PROD_NAME_AIHIT:latest -t $PROD_NAME_AIHIT:$IMAGE_VERSION -t $PROD_NAME_AIHIT:latest --build-arg app_version=$APP_VERSION -f PARR.Worker/PARR.Worker/Dockerfile . - docker login -u $HARBOR_PUSH_USER -p $HARBOR_PUSH_PASS $REPO - docker push --all-tags $REPO/$PROD_NAME_AIHIT tags: - docker-as prod_aihit_deploy: stage: deploy environment: name: parr-aihit-syncher only: - /^as[0-9]+\.[0-9]+\.[0-9]+$/ except: - branches script: - IMAGE_VERSION=$(echo $CI_COMMIT_TAG | sed 's/as/v/g') - docker login -u $HARBOR_PULL_USER -p $HARBOR_PULL_PASS $REPO - tag=$IMAGE_VERSION docker compose -f docker-compose.aihit-syncher.yml up -d parallel: matrix: - RUNNER: shell-as-1 tags: - ${RUNNER} ### ESPP TEMPLATE PROD ### prod_espp-template_build: stage: build only: - /^et[0-9]+\.[0-9]+\.[0-9]+$/ except: - branches services: - name: docker:20.10.21-dind command: [ "--insecure-registry=10.99.253.167:8090", "--registry-mirror=http://10.99.253.167:8090", "--insecure-registry=10.99.253.167:8088", "--registry-mirror=http://10.99.253.167:8088", "--insecure-registry=harbor.dvgd.rzd", "--tls=false" ] variables: DOCKER_HOST: tcp://docker:2375 DOCKER_DRIVER: overlay2 DOCKER_TLS_CERTDIR: "" script: - APP_VERSION=$(echo $CI_COMMIT_TAG | tr -d et) - IMAGE_VERSION=$(echo $CI_COMMIT_TAG | sed 's/et/v/g') - docker build -t $REPO/$PROD_NAME_ESPP_TEMPLATE:$IMAGE_VERSION -t $REPO/$PROD_NAME_ESPP_TEMPLATE:latest -t $PROD_NAME_ESPP_TEMPLATE:$IMAGE_VERSION -t $PROD_NAME_ESPP_TEMPLATE:latest --build-arg app_version=$APP_VERSION -f PARR.EsppTemplateSyncWorker/Dockerfile . - docker login -u $HARBOR_PUSH_USER -p $HARBOR_PUSH_PASS $REPO - docker push --all-tags $REPO/$PROD_NAME_ESPP_TEMPLATE tags: - docker-et prod_espp-template_deploy: stage: deploy environment: name: parr-espp-template-sync only: - /^et[0-9]+\.[0-9]+\.[0-9]+$/ except: - branches script: - IMAGE_VERSION=$(echo $CI_COMMIT_TAG | sed 's/et/v/g') - docker login -u $HARBOR_PULL_USER -p $HARBOR_PULL_PASS $REPO #- tag=$IMAGE_VERSION docker compose -f docker-compose.espp-template-sync.yml up -d - tag=$IMAGE_VERSION docker stack deploy -c docker-compose.espp-template-sync.yml parr-espp --with-registry-auth parallel: matrix: - RUNNER: shell-api-swarm-01 #- RUNNER: shell-et-1 tags: - ${RUNNER} ### GENERATOR TEMPLATES PROD ### prod_generator_templates_build: stage: build only: - /^gt[0-9]+\.[0-9]+\.[0-9]+$/ except: - branches services: - name: docker:20.10.21-dind command: [ "--insecure-registry=10.99.253.167:8090", "--registry-mirror=http://10.99.253.167:8090", "--insecure-registry=harbor.dvgd.rzd", "--tls=false" ] variables: DOCKER_HOST: tcp://docker:2375 DOCKER_DRIVER: overlay2 DOCKER_TLS_CERTDIR: "" script: - APP_VERSION=$(echo $CI_COMMIT_TAG | tr -d gt) - IMAGE_VERSION=$(echo $CI_COMMIT_TAG | sed 's/gt/v/g') - docker build -t $REPO/$PROD_NAME_GENERATOR_TEMPLATES:$IMAGE_VERSION -t $REPO/$PROD_NAME_GENERATOR_TEMPLATES:latest -t $PROD_NAME_GENERATOR_TEMPLATES:$IMAGE_VERSION -t $PROD_NAME_GENERATOR_TEMPLATES:latest --build-arg app_version=$APP_VERSION -f PARR.GeneratorTemplatesWorker/Dockerfile . - docker login -u $HARBOR_PUSH_USER -p $HARBOR_PUSH_PASS $REPO - docker push --all-tags $REPO/$PROD_NAME_GENERATOR_TEMPLATES tags: - docker prod_generator_templates_deploy: stage: deploy environment: name: parr-generator-templates-sync only: - /^gt[0-9]+\.[0-9]+\.[0-9]+$/ except: - branches script: - IMAGE_VERSION=$(echo $CI_COMMIT_TAG | sed 's/gt/v/g') - docker login -u $HARBOR_PULL_USER -p $HARBOR_PULL_PASS $REPO - tag=$IMAGE_VERSION docker stack deploy -c docker-compose.generator-templates.yml parr-generator-templates --with-registry-auth parallel: matrix: - RUNNER: shell-api-swarm-01 tags: - ${RUNNER} ### ESPP ORDER LOADER PROD ### prod_espp_order_loader_build: stage: build only: - /^ol[0-9]+\.[0-9]+\.[0-9]+$/ except: - branches services: - name: docker:20.10.21-dind command: [ "--insecure-registry=10.99.253.167:8090", "--registry-mirror=http://10.99.253.167:8090", "--insecure-registry=harbor.dvgd.rzd", "--tls=false" ] variables: DOCKER_HOST: tcp://docker:2375 DOCKER_DRIVER: overlay2 DOCKER_TLS_CERTDIR: "" script: - APP_VERSION=$(echo $CI_COMMIT_TAG | tr -d ol) - IMAGE_VERSION=$(echo $CI_COMMIT_TAG | sed 's/ol/v/g') - docker build -t $REPO/$PROD_NAME_ESPP_ORDER_LOADER:$IMAGE_VERSION -t $REPO/$PROD_NAME_ESPP_ORDER_LOADER:latest -t $PROD_NAME_ESPP_ORDER_LOADER:$IMAGE_VERSION -t $PROD_NAME_ESPP_ORDER_LOADER:latest --build-arg app_version=$APP_VERSION -f PARR.EsppOrderLoaderWorker/Dockerfile . - docker login -u $HARBOR_PUSH_USER -p $HARBOR_PUSH_PASS $REPO - docker push --all-tags $REPO/$PROD_NAME_ESPP_ORDER_LOADER tags: - docker prod_espp_order_loader_deploy: stage: deploy environment: name: parr-espp-order-loader only: - /^ol[0-9]+\.[0-9]+\.[0-9]+$/ except: - branches script: - IMAGE_VERSION=$(echo $CI_COMMIT_TAG | sed 's/ol/v/g') - docker login -u $HARBOR_PULL_USER -p $HARBOR_PULL_PASS $REPO - tag=$IMAGE_VERSION docker stack deploy -c docker-compose.espp-order-loader.yml parr-espp-order-loader --with-registry-auth parallel: matrix: - RUNNER: shell-api-swarm-01 tags: - ${RUNNER} ### ESPP ORDER MANAGER PROD ### prod_espp_order_manager_build: stage: build only: - /^om[0-9]+\.[0-9]+\.[0-9]+$/ except: - branches services: - name: docker:20.10.21-dind command: [ "--insecure-registry=10.99.253.167:8090", "--registry-mirror=http://10.99.253.167:8090", "--insecure-registry=harbor.dvgd.rzd", "--tls=false" ] variables: DOCKER_HOST: tcp://docker:2375 DOCKER_DRIVER: overlay2 DOCKER_TLS_CERTDIR: "" script: - APP_VERSION=$(echo $CI_COMMIT_TAG | tr -d om) - IMAGE_VERSION=$(echo $CI_COMMIT_TAG | sed 's/om/v/g') - docker build -t $REPO/$PROD_NAME_ESPP_ORDER_MANAGER:$IMAGE_VERSION -t $REPO/$PROD_NAME_ESPP_ORDER_MANAGER:latest -t $PROD_NAME_ESPP_ORDER_MANAGER:$IMAGE_VERSION -t $PROD_NAME_ESPP_ORDER_MANAGER:latest --build-arg app_version=$APP_VERSION -f PARR.EsppOrderManagerWorker/Dockerfile . - docker login -u $HARBOR_PUSH_USER -p $HARBOR_PUSH_PASS $REPO - docker push --all-tags $REPO/$PROD_NAME_ESPP_ORDER_MANAGER tags: - docker prod_espp_order_manager_deploy: stage: deploy environment: name: parr-espp-order-manager only: - /^om[0-9]+\.[0-9]+\.[0-9]+$/ except: - branches script: - IMAGE_VERSION=$(echo $CI_COMMIT_TAG | sed 's/om/v/g') - docker login -u $HARBOR_PULL_USER -p $HARBOR_PULL_PASS $REPO - tag=$IMAGE_VERSION docker stack deploy -c docker-compose.espp-order-manager.yml parr-espp-order-manager --with-registry-auth parallel: matrix: - RUNNER: shell-api-swarm-01 tags: - ${RUNNER} ### MASTER PROD ### prod_master_build: stage: build only: - /^m[0-9]+\.[0-9]+\.[0-9]+$/ except: - branches services: - name: docker:20.10.21-dind command: [ "--insecure-registry=10.99.253.167:8090", "--registry-mirror=http://10.99.253.167:8090", "--insecure-registry=harbor.dvgd.rzd", "--tls=false" ] variables: DOCKER_HOST: tcp://docker:2375 DOCKER_DRIVER: overlay2 DOCKER_TLS_CERTDIR: "" script: - APP_VERSION=$(echo $CI_COMMIT_TAG | tr -d m) - IMAGE_VERSION=$(echo $CI_COMMIT_TAG | sed 's/m/v/g') - docker build -t $REPO/$PROD_NAME_MASTER:$IMAGE_VERSION -t $REPO/$PROD_NAME_MASTER:latest -t $PROD_NAME_MASTER:$IMAGE_VERSION -t $PROD_NAME_MASTER:latest --build-arg app_version=$APP_VERSION -f PARR.MasterWorker/Dockerfile . - docker login -u $HARBOR_PUSH_USER -p $HARBOR_PUSH_PASS $REPO - docker push --all-tags $REPO/$PROD_NAME_MASTER tags: - docker prod_master_deploy: stage: deploy environment: name: parr-master only: - /^m[0-9]+\.[0-9]+\.[0-9]+$/ except: - branches script: - IMAGE_VERSION=$(echo $CI_COMMIT_TAG | sed 's/m/v/g') - docker login -u $HARBOR_PULL_USER -p $HARBOR_PULL_PASS $REPO - tag=$IMAGE_VERSION docker stack deploy -c docker-compose.master.yml parr-master --with-registry-auth parallel: matrix: - RUNNER: shell-api-swarm-01 tags: - ${RUNNER}