stages: - check - build - dockerize - 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/hv2/hv2-node-build-env:1.0.0 stage: build variables: GIT_SUBMODULE_STRATEGY: recursive tags: - hottis - linux - docker artifacts: paths: - dist.tgz expire_in: 1 day script: - cd hv2-ui - if [ "$CI_COMMIT_TAG" != "" ]; then sed -i -e 's/GITTAGVERSION/'"$CI_COMMIT_TAG"':'"$CI_COMMIT_SHORT_SHA"'/' ./src/app/navigation/navigation.component.html; fi - npm install - for F in ./src/app/*.tmpl; do python ../helpers/hv2-api/generate.py -s ../helpers/hv2-api/schema.json -t $F; done - ./node_modules/.bin/ng build --prod - tar -czf ../dist.tgz dist dockerize: image: registry.hottis.de/dockerized/docker-bash:latest stage: dockerize tags: - hottis - linux - docker rules: - if: $CI_COMMIT_TAG script: - tar -xzf dist.tgz - docker build --tag $IMAGE_NAME:latest --tag $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 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 - 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.39 $IMAGE_NAME:${CI_COMMIT_TAG}