Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
YAML 2.15 KB | None | 0 0
  1. image: docker:stable
  2.  
  3. variables:
  4. # When using dind service we need to instruct docker, to talk with the
  5.  # daemon started inside of the service. The daemon is available with
  6.  # a network connection instead of the default /var/run/docker.sock socket.
  7.  #
  8.  # The 'docker' hostname is the alias of the service container as described at
  9.  # https://docs.gitlab.com/ee/ci/docker/using_docker_images.html#accessing-the-services
  10.  #
  11.  # Note that if you're using Kubernetes executor, the variable should be set to
  12.  # tcp://localhost:2375 because of how Kubernetes executor connects services
  13.  # to the job container
  14.  DOCKER_HOST: tcp://docker:2375/
  15.  CONTAINER_NAME: supermindmemebot
  16. services:
  17.  - docker:dind
  18.  
  19. before_script:
  20.  - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
  21.  
  22. stages:
  23.  - build
  24.   - test
  25.   - deploy
  26.  
  27. build:
  28.   stage: build
  29.   script:
  30.    - cd src
  31.     - docker pull $CI_REGISTRY_IMAGE:latest || true
  32.     - docker build --cache-from $CI_REGISTRY_IMAGE:latest --tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA --tag $CI_REGISTRY_IMAGE:latest .
  33.     - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
  34.     - docker push $CI_REGISTRY_IMAGE:latest
  35.  
  36. test:
  37.   stage: test
  38.   only:
  39.    - dev
  40.     - master
  41.   script:
  42.    - docker pull $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
  43.     - docker run $CI_REGISTRY_IMAGE python3 -m pytest
  44.  
  45. step-deploy-prod:
  46.   stage: deploy
  47.   only:
  48.    - master
  49.   variables:
  50.     PRODUCTION_HOST: tcp://araya.su:2376
  51.     SERVICE_NAME: supermindmemebot
  52.  
  53.   script:
  54.    - mkdir -p ~/.docker
  55.     - echo "$TLSCACERT" > ~/.docker/ca.pem
  56.     - echo "$TLSCERT" > ~/.docker/cert.pem
  57.     - echo "$TLSKEY" > ~/.docker/key.pem
  58.     - docker -H $PRODUCTION_HOST --tls login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
  59.     - docker -H $PRODUCTION_HOST --tls pull $CI_REGISTRY_IMAGE:latest
  60.     - docker -H $PRODUCTION_HOST --tls stop supermindmemebot || true
  61.     - docker -H $PRODUCTION_HOST --tls rm supermindmemebot || true
  62.     - docker -H $PRODUCTION_HOST --tls run --name=supermindmemebot --restart=unless-stopped -e TG_API_TOKEN_B32="$TG_API_TOKEN_B32" -d $CI_REGISTRY_IMAGE
  63. #  environment: production
  64. #  when: manual
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement