Skip to content
Snippets Groups Projects
.gitlab-ci.yml 3.81 KiB
Newer Older
Chris Hines's avatar
Chris Hines committed
stages:
  - build
  - deploy

Chris Hines's avatar
Chris Hines committed
  stage: build
Chris Hines's avatar
Chris Hines committed
  image: docker:20.10
Chris Hines's avatar
Chris Hines committed
  services:
Chris Hines's avatar
Chris Hines committed
    - docker:20.10-dind
Chris Hines's avatar
Chris Hines committed
  variables:
    DOCKER_DRIVER: overlay2
    DOCKER_TLS_CERTDIR: "/certs"
    - echo $DOCKERHUBUSER
Chris Hines's avatar
Chris Hines committed
    - echo $DOCKERHUBPASSWORD
Chris Hines's avatar
Chris Hines committed
    - docker login -u $DOCKERHUBUSER -p $DOCKERHUBPASSWORD docker.io
Chris Hines's avatar
Chris Hines committed
    - docker build --tag=l1ll1/strudel2_backend:$CI_COMMIT_BRANCH .
    - docker push l1ll1/strudel2_backend:$CI_COMMIT_BRANCH
Chris Hines's avatar
Chris Hines committed
  tags:
Chris Hines's avatar
Chris Hines committed
    - build_strudel2_backend
Chris Hines's avatar
Chris Hines committed
    - test@hpc-team/strudel2_backend
  variables:
    DOCKER_HOST: unix:///var/run/docker.sock
Chris Hines's avatar
Chris Hines committed
    - echo "deploying test"
    - cp ./nginx_snippets/* /etc/nginx/snippets/
    - mkdir -p /opt/strudel2/errors/
    - cp ./html/* /opt/strudel2/errors/
    - docker login -u $DOCKERHUBUSER -p $DOCKERHUBPASSWORD docker.io
    - docker stop strudel2_backend || echo "Failed to stop existing container"
    - docker ps -a -q | xargs -I{} docker rm  {} || echo "No containers to remove"
    - docker images -q | xargs -I{} docker rmi {} || echo "No images to remove"
Chris Hines's avatar
Chris Hines committed
    - docker pull l1ll1/strudel2_backend:$CI_COMMIT_BRANCH
    - docker run --mount type=bind,source=/messages,target=/messages --mount type=bind,source=/var/log/strudel2,target=/var/log/strudel2 --restart=always  -v /home/ubuntu/telegraf.conf:/etc/telegraf/telegraf.conf:ro -d -p 8080:8080 -p 8090:8090 --name strudel2_backend l1ll1/strudel2_backend:$CI_COMMIT_BRANCH || echo "Unable to start image ... possibly the old wsgi process is still running?"
  dependencies:
    - build

deploy_dev:
  stage: deploy
Chris Hines's avatar
Chris Hines committed
    - dev@hpc-team/strudel2_backend
Chris Hines's avatar
Chris Hines committed
    - deploy_dev
Chris Hines's avatar
Chris Hines committed
  variables:
    DOCKER_HOST: unix:///var/run/docker.sock
  script:
    - echo "deploying dev"
    - cp ./nginx_snippets/* /etc/nginx/snippets/
    - mkdir -p /opt/strudel2/errors/
    - cp ./html/* /opt/strudel2/errors/
Chris Hines's avatar
Chris Hines committed
    - docker login -u $DOCKERHUBUSER -p $DOCKERHUBPASSWORD docker.io
    - docker stop strudel2_backend || echo "Failed to stop existing container"
    - docker ps -a -q | xargs -I{} docker rm  {} || echo "No containers to remove"
    - docker images -q | xargs -I{} docker rmi {} || echo "No images to remove"
    - docker pull l1ll1/strudel2_backend:$CI_COMMIT_BRANCH
Jafar Lie's avatar
Jafar Lie committed
    - docker run --mount type=bind,source=/messages,target=/messages --mount type=bind,source=/var/log/strudel2,target=/var/log/strudel2 --restart=always  -d -p 8080:8080 -p 8090:8090 --name strudel2_backend l1ll1/strudel2_backend:$CI_COMMIT_BRANCH || echo "Unable to start image ... possibly the old wsgi process is still running?"
Chris Hines's avatar
Chris Hines committed
  dependencies:
    - build
    
Chris Hines's avatar
Chris Hines committed
deploy_prod:
  stage: deploy
  only:
    - prod@hpc-team/strudel2_backend
  tags: 
    - deploy_prod
  variables:
    DOCKER_HOST: unix:///var/run/docker.sock
  script:
    - echo "deploying prod"
Chris Hines's avatar
Chris Hines committed
    - seconds=$(echo "scale=0 ; (( `date -d "11:59:00" +%s` - `date +%s` ) + 86400) % 86400 "| bc -l) ; sleep $seconds
    - cp ./nginx_snippets/* /etc/nginx/snippets/
    - mkdir -p /opt/strudel2/errors/
    - cp ./html/* /opt/strudel2/errors/
Chris Hines's avatar
Chris Hines committed
    - docker login -u $DOCKERHUBUSER -p $DOCKERHUBPASSWORD docker.io
    - docker stop strudel2_backend || echo "Failed to stop existing container"
    - docker ps -a -q | xargs -I{} docker rm  {} || echo "No containers to remove"
    - docker images -q | xargs -I{} docker rmi {} || echo "No images to remove"
    - docker pull l1ll1/strudel2_backend:$CI_COMMIT_BRANCH
    - docker run --mount type=bind,source=/messages,target=/messages --mount type=bind,source=/var/log/strudel2,target=/var/log/strudel2 --restart=always  -d -p 8080:8080 -p 8090:8090 --log-driver json-file --log-opt max-size=10m --log-opt max-file=3 --name strudel2_backend l1ll1/strudel2_backend:$CI_COMMIT_BRANCH || echo "Unable to start image ... possibly the old wsgi process is still running?"
Chris Hines's avatar
Chris Hines committed
  dependencies:
    - build