Personal_Website/.gitlab-ci.yml

66 lines
1.5 KiB
YAML

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 ./