Personal_Website/.gitlab-ci.yml

41 lines
1.1 KiB
YAML

stages:
- build
- publish
- deploy
build-job:
stage: build
image: docker:stable
tags:
- docker
script:
- docker login --username="$REGISTRY_USER" --password="REGISTRY_PASSWORD" "$REGISTRY_BASE_URL"
- docker -H unix:///var/run/docker.sock image build -t "$REGISTRY_BASE_URL/$DOCKER_IMAGE_NAME:$CI_COMMIT_SHORT_SHA" ./
artifacts:
- paths:
- ~/.docker/
publish-job:
stage: publish
image: docker:stable
tags:
- docker
script:
- docker -H unix:///var/run/docker.sock image push "$REGISTRY_BASE_URL/$DOCKER_IMAGE_NAME:$CI_COMMIT_SHORT_SHA"
deploy-job:
stage: deploy
when: manual
image: google/cloud-sdk
script:
- export KUBECONFIG="$KUBE_AUTH"
- cp "$ENV_PRODUCTION" "./build/.env.production"
- cp "$MYSQL_ENV" "./build/mysql-secret.env"
- cp "~/.docker/config.json" "./build/.dockerconfigjson"
- cd "./build"
- kubectl apply -k ./
- echo "Waiting for deployment..."
- sleep 30
- WEBSITE_POD=$(kubectl get pod -l "$KUBE_POD_LABELS" -n "$KUBE_NAMESPACE" -o jsonpath="{.items[0].metadata.name}")
- kubectl delete -n "$KUBE_NAMESPACE" pod "$WEBSITE_POD"