From bda4e04fee611c3f8f5e46343e47169b055fc9b9 Mon Sep 17 00:00:00 2001 From: Daniel_I_Am Date: Fri, 3 Sep 2021 20:38:42 +0000 Subject: [PATCH] Create a Gitlab CI procedure --- .gitlab-ci.yml | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..4fe8113 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,40 @@ +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"