stages:
  - build
  - test
  - release

variables:
  CONTAINER_TEST_IMAGE: boileaum/rosen:$CI_COMMIT_REF_NAME
  CONTAINER_RELEASE_IMAGE: boileaum/rosen:latest

before_script:
  - echo $DOCKERHUB_PASSWD | docker login -u boileaum --password-stdin

b:docker:
  stage: build
  tags:
    - shell, docker
  script:
    - docker build --pull -t $CONTAINER_TEST_IMAGE -f ./docker/Dockerfile-rosen .
    - docker push $CONTAINER_TEST_IMAGE

t:helloworld:
  stage: test
  tags:
    - shell, docker
  script:
    - docker pull $CONTAINER_TEST_IMAGE
    - docker run $CONTAINER_TEST_IMAGE /bin/bash -c 'python test_helloworld.py'

t:rosen:
  stage: test
  tags:
    - shell, docker
  script:
    - docker pull $CONTAINER_TEST_IMAGE
    - docker run $CONTAINER_TEST_IMAGE /bin/bash -c 'pytest -v'

r:docker:
  stage: release
  tags:
    - shell, docker
  script:
    - docker pull $CONTAINER_TEST_IMAGE
    - docker tag $CONTAINER_TEST_IMAGE $CONTAINER_RELEASE_IMAGE
    - docker push $CONTAINER_RELEASE_IMAGE
  only:
    - master