stages:
  - build
  - deploy

build:
  stage: build
  image: docker:stable
  services:
    - docker:dind
  variables:
    DOCKER_HOST: tcp://docker:2375/
    DOCKER_DRIVER: overlay2
  script:
    - echo $DOCKERHUBUSER
    - echo $DOCKERHUBASSWORD
    - docker login -u $DOCKERHUBUSER -p $DOCKERHUBPASSWORD docker.io
    - docker build --tag=l1ll1/strudel2_backend .
    - docker push l1ll1/strudel2_backend:latest
  tags:
    - build_strudel2_backend

deploy_test:
  stage: deploy
  only:
    - testing@hpc-team/strudelv2_spa
  tags: 
    - deploy_test
  script:
    - echo "deploying test"
  dependencies:
    - build

deploy_dev:
  stage: deploy
  tags: 
    - deploy_dev
  variables:
    DOCKER_HOST: unix:///var/run/docker.sock
  script:
    - echo "deploying dev"
    - docker login -u $DOCKERHUBUSER -p $DOCKERHUBPASSWORD docker.io
    - docker stop l1ll1/strudel2_backend:latest || 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:latest
    - docker run -d -p 6080:8080 l1ll1/strudel2_backend:latest || echo "Unable to start image ... possibly the old wsgi process is still running?"
  dependencies:
    - build