Files
vnctalk-prosody/.gitlab-ci.yml
T

89 lines
2.6 KiB
YAML

image: docker:20.10.17
variables:
DOCKER_HOST: tcp://localhost:2375
DOCKER_TLS_CERTDIR: ''
DEV_CONTAINER_REGISTRY: eu.gcr.io/vnc-development/vnctalk-prosody:development
IMAGE_TAG: eu.gcr.io/vnc-development/vnctalk-prosody:development-$CI_COMMIT_SHORT_SHA
IMAGE_TAG_PROD: eu.gcr.io/vnc-dev-275609/vnctalk-prosody:production
IMAGE_TAG_STABLE: eu.gcr.io/vnc-stable/vnctalk-prosody:stable
services:
- name: docker:20.10.17-dind
alias: docker
stages:
- 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/vnctalk-prosody.tgz
only:
- main
dev_trivy:
image: eu.gcr.io/vnc-development/docker-vnc-runner:latest
stage: scan
script:
- apt -y update
- apt -y install wget apt-transport-https gnupg lsb-release
- wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | apt-key add -
- echo "deb https://aquasecurity.github.io/trivy-repo/deb $(lsb_release -sc) main" >> /etc/apt/sources.list.d/trivy.list
- apt -y update
- apt -y install trivy
- trivy image --input scan/vnctalk-prosody.tgz
only:
- main
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-.*/