stages: - docker - deploy docker-auth-job: stage: docker image: docker:stable only: refs: - master script: - docker login --username "$REGISTRY_USER" --password "$REGISTRY_PASSWORD" "$REGISTRY_BASE_URL" - cp "/root/.docker/config.json" "./build/.dockerconfigjson" artifacts: paths: - build/.dockerconfigjson docker-build-job: stage: docker image: docker:stable only: refs: - master tags: - docker script: - docker -H unix:///var/run/docker.sock image build -t "$REGISTRY_BASE_URL/$DOCKER_IMAGE_NAME:$CI_COMMIT_SHORT_SHA" ./ docker-publish-job: stage: docker image: docker:stable only: refs: - master needs: - docker-auth-job - docker-build-job dependencies: - docker-auth-job tags: - docker script: - mkdir "/root/.docker/" - cp "./build/.dockerconfigjson" "/root/.docker/config.json" - docker -H unix:///var/run/docker.sock image push "$REGISTRY_BASE_URL/$DOCKER_IMAGE_NAME:$CI_COMMIT_SHORT_SHA" deploy-job: stage: deploy only: refs: - master when: manual image: google/cloud-sdk needs: - docker-auth-job - docker-publish-job dependencies: - docker-auth-job script: - export KUBECONFIG="$KUBE_AUTH" - cp "$ENV_PRODUCTION" "./build/.env.production" - cp "$MYSQL_ENV" "./build/mysql-secret.env" - cd "./build" - sed -i "s/DOCKER_IMAGE_TAG/${CI_COMMIT_SHORT_SHA}/g" kustomization.yaml - kubectl apply -k ./