diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..a5f75e9 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,38 @@ +# .gitlab-ci.yml + +stages: + - dockerize + - deployment + +build-push-docker-image-job: + stage: dockerize + # Specify a Docker image to run the job in. + image: docker:20-dind + # Specify an additional image 'docker:dind' ("Docker-in-Docker") that + # will start up the Docker daemon when it is brought up by a runner. + before_script: + - docker login -u "$DOCKER_REGISTRY_USER" -p "$DOCKER_REGISTRY_PASSWORD" $DOCKER_REGISTRY_URL # Instructs GitLab to login to its registry + services: + - name: docker:20-dind + alias: docker + command: ["--tls=false"] + script: + - echo "Building..." # MAKE SURE NO SPACE ON EITHER SIDE OF = IN THE FOLLOWING LINE + - export CONTAINER_FULL_IMAGE_NAME_WITH_TAG=$IMAGE_NAME_WITH_REGISTRY_PREFIX/my-build-image:$COMMIT_HASH + - docker build -f ./Dockerfile --pull -t built-image-name . + - docker tag built-image-name "$CONTAINER_FULL_IMAGE_NAME_WITH_TAG" + - docker push "$CONTAINER_FULL_IMAGE_NAME_WITH_TAG" + - echo "$CONTAINER_FULL_IMAGE_NAME_WITH_TAG" + - echo "Deploying on CapRover..." + - docker run caprover/cli-caprover:2.2.3 caprover deploy --caproverUrl "$CAPROVER_URL" --caproverPassword "$CAPROVER_PASSWORD" -a "$CAPROVER_APP" -i "$CONTAINER_FULL_IMAGE_NAME_WITH_TAG" + only: + - main + variables: + DOCKER_REGISTRY_USER: ${CI_REGISTRY_USER} + DOCKER_REGISTRY_PASSWORD: ${CI_REGISTRY_PASSWORD} + DOCKER_REGISTRY_URL: ${CI_REGISTRY} + IMAGE_NAME_WITH_REGISTRY_PREFIX: ${CI_REGISTRY_IMAGE} + COMMIT_HASH: ${CI_COMMIT_SHA} + CAPROVER_URL: ${CAPROVER_URL} + CAPROVER_PASSWORD: ${CAPROVER_PASSWORD} + CAPROVER_APP: ${CAPROVER_APP}