image: docker:20.10.17 variables: DOCKER_HOST: tcp://docker:2375 DOCKER_TLS_CERTDIR: '' DEV_CONTAINER_REGISTRY: eu.gcr.io/vnc-development/prosody-muc-rest-api:development IMAGE_TAG: eu.gcr.io/vnc-development/prosody-muc-rest-api:development-$CI_COMMIT_SHORT_SHA IMAGE_TAG_PROD: eu.gcr.io/vnc-dev-275609/prosody-muc-rest-api:production IMAGE_TAG_STABLE: eu.gcr.io/vnc-stable/prosody-muc-rest-api:stable services: - name: docker:20.10.17-dind alias: docker stages: - build_deb - docker - scan - notification dev_deploy: before_script: - until docker info; do sleep 1; done - base64 -d $SA_Development | docker login -u _json_key --password-stdin https://eu.gcr.io stage: docker artifacts: public: false expire_in: 12h paths: - scan script: - docker build -t $IMAGE_TAG . - docker push $IMAGE_TAG - docker image save $IMAGE_TAG -o scan/mucrest.tgz only: - master dev_trivy: image: aquasec/trivy:latest stage: scan script: - trivy image --exit-code 1 --format template --template "@/contrib/junit.tpl" -o mucrest.xml --input scan/mucrest.tgz artifacts: public: false expire_in: 12h paths: - ./*.xml reports: junit: - ./*.xml only: - master prod_deploy: before_script: - until docker info; do sleep 1; done - base64 -d $SA_Production | docker login -u _json_key --password-stdin https://eu.gcr.io stage: docker script: - echo $CI_COMMIT_TAG - COMMIT_VERSION=$(echo $CI_COMMIT_TAG | awk -F'prod-' '{print $2}') - echo $COMMIT_VERSION - DEV_TAG=$DEV_CONTAINER_REGISTRY-$COMMIT_VERSION - echo $DEV_TAG - docker pull $DEV_TAG - PROD_IMAGE=$IMAGE_TAG_PROD-$COMMIT_VERSION - docker tag $DEV_TAG $PROD_IMAGE - docker push $PROD_IMAGE rules: - if: $CI_COMMIT_TAG =~ /^prod-.*/ stable_deploy: before_script: - until docker info; do sleep 1; done - base64 -d $SA_Production | docker login -u _json_key --password-stdin https://eu.gcr.io stage: docker script: - echo $CI_COMMIT_TAG - COMMIT_VERSION=$(echo $CI_COMMIT_TAG | awk -F'stable-' '{print $2}') - echo $COMMIT_VERSION - DEV_TAG=$DEV_CONTAINER_REGISTRY-$COMMIT_VERSION - echo $DEV_TAG - docker pull $DEV_TAG - STABLE_IMAGE=$IMAGE_TAG_STABLE-$COMMIT_VERSION - docker tag $DEV_TAG $STABLE_IMAGE - docker push $STABLE_IMAGE rules: - if: $CI_COMMIT_TAG =~ /^stable-.*/