# This file is a template, and might need editing before it works on your project. # Official docker image. image: docker:latest services: - docker:dind variables: CHANNEL: "skillbox" SERVER_URL: "lms.test.spicycms.com" DOMAIN: "$CI_BUILD_REF_SLUG.$SERVER_URL" SLACK_MSG: "Check new website " SLACK_URL: "https://hooks.slack.com/services/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" SLACK_URL_BRAMA: "https://hooks.slack.com/services/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" types: - build - test build_app: type: build script: - docker login -u "gitlab-ci-token" -p "$CI_BUILD_TOKEN" $CI_REGISTRY - docker build --no-cache --rm --pull -t "$CI_REGISTRY_IMAGE:$CI_BUILD_REF_SLUG" --build-arg SSH_PRIVATE_KEY="$SSH_PRIVATE_KEY" --build-arg SPICYCODE_LOGIN="$SPICYCODE_LOGIN" --build-arg SPICYCODE_PASS="$SPICYCODE_PASS" . #- docker run --rm --add-host dockerhost:`/sbin/ip route|awk '/default/ { print $3}'` "$CI_REGISTRY_IMAGE:$CI_BUILD_REF_SLUG" python manage.py test - docker push "$CI_REGISTRY_IMAGE:$CI_BUILD_REF_SLUG" test_app: type: test script: #- docker login -u "gitlab-ci-token" -p "$CI_BUILD_TOKEN" $CI_REGISTRY #- docker pull "$CI_REGISTRY_IMAGE:$CI_BUILD_REF_SLUG" - if [[ $(docker ps -a) == *$DOMAIN* ]] ; then docker stop $DOMAIN ; fi - if [[ $(docker ps -a) == *$DOMAIN* ]] ; then docker rm $DOMAIN; fi - "SLACK_PAYLOAD='payload={\"channel\":\"#'${CHANNEL}'\",\"username\":\"'${SERVER_URL}'\",\"text\":\"'${SLACK_MSG}'\",\"icon_emoji\":\":ghost:\"}'" - docker run -d --expose=80 --env VIRTUAL_HOST=$DOMAIN --name $DOMAIN --env HTTPS_METHOD=noredirect --env DB_NAME=$DB_NAME --env PG_PORT_5432_TCP_ADDR=$DB_HOST --env PG_PORT_5432_TCP_PORT=$DB_PORT --env PG_ENV_POSTGRES_USER=$DB_TEST_USER --env PG_ENV_POSTGRES_PASSWORD=$DB_TEST_PASS "$CI_REGISTRY_IMAGE:$CI_BUILD_REF_SLUG" - curl -I $DOMAIN 2>/dev/null | head -n 1 | cut -d$' ' -f2 - SLACK_MSG="REVIEW app is started on https://$DOMAIN/" - SLACK_PAYLOAD="payload={\"text\":\"$SLACK_MSG\",\"username\":\"gitlab-ci\"}" - curl -X POST -d "$SLACK_PAYLOAD" $SLACK_URL - curl -X POST -d "$SLACK_PAYLOAD" $SLACK_URL_BRAMA dependencies: - build_app