Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- image: docker:stable
- variables:
- # When using dind service we need to instruct docker, to talk with the
- # daemon started inside of the service. The daemon is available with
- # a network connection instead of the default /var/run/docker.sock socket.
- #
- # The 'docker' hostname is the alias of the service container as described at
- # https://docs.gitlab.com/ee/ci/docker/using_docker_images.html#accessing-the-services
- #
- # Note that if you're using Kubernetes executor, the variable should be set to
- # tcp://localhost:2375 because of how Kubernetes executor connects services
- # to the job container
- DOCKER_HOST: tcp://docker:2375/
- CONTAINER_NAME: supermindmemebot
- services:
- - docker:dind
- before_script:
- - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- stages:
- - build
- - test
- - deploy
- build:
- stage: build
- script:
- - cd src
- - docker pull $CI_REGISTRY_IMAGE:latest || true
- - docker build --cache-from $CI_REGISTRY_IMAGE:latest --tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA --tag $CI_REGISTRY_IMAGE:latest .
- - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
- - docker push $CI_REGISTRY_IMAGE:latest
- test:
- stage: test
- only:
- - dev
- - master
- script:
- - docker pull $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
- - docker run $CI_REGISTRY_IMAGE python3 -m pytest
- step-deploy-prod:
- stage: deploy
- only:
- - master
- variables:
- PRODUCTION_HOST: tcp://araya.su:2376
- SERVICE_NAME: supermindmemebot
- script:
- - mkdir -p ~/.docker
- - echo "$TLSCACERT" > ~/.docker/ca.pem
- - echo "$TLSCERT" > ~/.docker/cert.pem
- - echo "$TLSKEY" > ~/.docker/key.pem
- - docker -H $PRODUCTION_HOST --tls login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- - docker -H $PRODUCTION_HOST --tls pull $CI_REGISTRY_IMAGE:latest
- - docker -H $PRODUCTION_HOST --tls stop supermindmemebot || true
- - docker -H $PRODUCTION_HOST --tls rm supermindmemebot || true
- - docker -H $PRODUCTION_HOST --tls run --name=supermindmemebot --restart=unless-stopped -e TG_API_TOKEN_B32="$TG_API_TOKEN_B32" -d $CI_REGISTRY_IMAGE
- # environment: production
- # when: manual
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement