stages: - check - build - dockerize - deploy 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}" dockerize-api: image: registry.hottis.de/dockerized/docker-bash:latest stage: dockerize tags: - hottis - linux - docker variables: IMAGE_NAME: ${CI_REGISTRY}/${CI_PROJECT_PATH}/api script: - cd api - 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 build-ui: image: registry.hottis.de/hv2/hv2-node-build-env:1.0.0 stage: build tags: - hottis - linux - docker artifacts: paths: - dist.tgz expire_in: 1 day script: - cd ui/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; sed -i -e 's,http://localhost:8080,https://api.hv.nober.de,' ./src/app/config.ts; fi - npm install - ./node_modules/.bin/ng build --prod - tar -czf ../../dist.tgz dist dockerize-ui: image: registry.hottis.de/dockerized/docker-bash:latest stage: dockerize tags: - hottis - linux - docker variables: IMAGE_NAME: ${CI_REGISTRY}/${CI_PROJECT_PATH}/ui script: - cd ui - tar -xzf ../dist.tgz - 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: image: registry.hottis.de/dockerized/docker-bash:latest stage: deploy tags: - hottis - linux - docker only: - tags variables: GIT_STRATEGY: none script: - docker stop $CONTAINER_NAME || echo "container not running, never mind" - docker rm $CONTAINER_NAME || echo "container not existing, never mind" - docker run -d --network docker-server --ip $CONTAINER_IP $VOLUMEOPT --name $CONTAINER_NAME --restart always $IMAGE_NAME:$CI_COMMIT_TAG deploy-api: extends: - .deploy variables: IMAGE_NAME: ${CI_REGISTRY}/${CI_PROJECT_PATH}/api CONTAINER_NAME: hv2-api CONTAINER_IP: 172.16.10.38 VOLUMEOPT: -v hv2-api-conf:/opt/app/config deploy-ui: extends: - .deploy variables: IMAGE_NAME: ${CI_REGISTRY}/${CI_PROJECT_PATH}/ui CONTAINER_NAME: hv2-ui CONTAINER_IP: 172.16.10.39