# 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_NAME.$SERVER_URL" SLACK_MSG: "Check new website " #SLACK_PAYLOAD: 'payload={\"channel\":\"#'${CHANNEL}'\",\"username\":\"'${SERVER_URL}'\",\"text\":\"'${SLACK_MSG}'\",\"icon_emoji\":\":ghost:\"}' SLACK_URL: "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_NAME" --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_NAME" python manage.py test - docker push "$CI_REGISTRY_IMAGE:$CI_BUILD_REF_NAME" 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_NAME" - 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 -e VIRTUAL_HOST=$DOMAIN --name=$DOMAIN -e DB_NAME=$DB_NAME -e PG_PORT_5432_TCP_ADDR=$DB_HOST -e PG_PORT_5432_TCP_PORT=$DB_PORT -e PG_ENV_POSTGRES_USER=$DB_TEST_USER -e PG_ENV_POSTGRES_PASSWORD=$DB_TEST_PASS "$CI_REGISTRY_IMAGE:$CI_BUILD_REF_NAME" - curl -I $DOMAIN 2>/dev/null | head -n 1 | cut -d$' ' -f2 - echo ${SLACK_PAYLOAD} - curl -X POST -d ${SLACK_PAYLOAD} $SLACK_URL dependencies: - build_app