stages:
        - check
        - build
        - deploy

variables:
        IMAGE_NAME: $CI_REGISTRY/$CI_PROJECT_PATH

check:
        image: registry.hottis.de/dockerized/base-build-env:latest
        stage: check
        tags:
                - hottis
                - linux
                - docker
        rules:
                - if: $CI_COMMIT_TAG
        script:
                - checksemver.py -v
                    --versionToValidate "${CI_COMMIT_TAG}"
                    --validateMessage
                    --messageToValidate "${CI_COMMIT_MESSAGE}"

build:
        image: registry.hottis.de/dockerized/docker-bash:latest
        stage: build
        tags:
                - hottis
                - linux
                - docker
        script: 
                - docker build --tag $IMAGE_NAME:latest .
                - if [ "$CI_COMMIT_TAG" != "" ]; then
                    docker tag $IMAGE_NAME:latest $IMAGE_NAME:${CI_COMMIT_TAG};
                    docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY;
                    docker push $IMAGE_NAME:latest;
                    docker push $IMAGE_NAME:${CI_COMMIT_TAG};
                  fi

deploy:
        stage: deploy
        image: registry.hottis.de/dockerized/docker-bash:latest
        only:
                - tags
        tags:
                - hottis
                - linux
                - docker
        variables:
                GIT_STRATEGY: none
        script:
                - CONTAINER_NAME=$CI_PROJECT_NAME
                - SERVICE_VOLUME=$CI_PROJECT_NAME"-conf"
                - SERVICE_PORT=5000
                - docker volume inspect $SERVICE_VOLUME || docker volume create $SERVICE_VOLUME
                - docker stop $CONTAINER_NAME || echo "$CONTAINER_NAME not running, anyway okay"
                - docker rm $CONTAINER_NAME || echo "$CONTAINER_NAME not exsting, anyway okay"
                - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY;
                - docker pull $IMAGE_NAME:${CI_COMMIT_TAG}
                - docker run -d --restart always --name $CONTAINER_NAME --network docker-server --ip 172.16.10.38 -v $SERVICE_VOLUME:/opt/app/config $IMAGE_NAME:${CI_COMMIT_TAG}