Loading .gitignore +1 −0 Original line number Diff line number Diff line Loading @@ -5,3 +5,4 @@ !.env target dist pom.xml.* .gitlab-ci.yml +22 −175 Original line number Diff line number Diff line include: - project: 'redmic-project/gitlab-ci-templates' ref: master file: '/maven-building-microservice.yml' - project: 'redmic-project/gitlab-ci-templates' ref: master file: '/license-listing.yml' - project: 'redmic-project/gitlab-ci-templates' ref: master file: '/packaging.yml' - project: 'redmic-project/gitlab-ci-templates' ref: master file: '/deployment.yml' stages: - build - license-list - package - test-package - deploy maven-build: stage: build image: registry.gitlab.com/redmic-project/docker/maven:${MAVEN_IMAGE_TAG} variables: MAVEN_OPTS: -Dmaven.repo.local=.m2/repository SPRING_PROFILES_ACTIVE: test AISHUB_SERVICE_USERNAME: ${AISHUB_SERVICE_USERNAME} only: - branches cache: paths: - .m2/repository/ script: - mvn verify spring-boot:repackage -B - "COVERAGE=$(xmllint --html --xpath '//table[@id=\"coveragetable\"]/tfoot//td[@class=\"ctr2\"][1]/text()' target/site/jacoco/index.html)" - 'echo "Coverage: ${COVERAGE}"' after_script: - rm -r .m2/repository/es artifacts: name: "${CI_PROJECT_NAME}-${CI_COMMIT_REF_NAME}" expire_in: '6 months' paths: - dist/*.jar docker-build-commit-non-master-branches: stage: package image: docker:stable variables: DOCKER_DRIVER: overlay2 PARENT_IMAGE_NAME: registry.gitlab.com/redmic-project/docker/redmic-server PARENT_IMAGE_TAG: latest services: - docker:dind only: - branches except: - master script: - docker login -u gitlab-ci-token -p ${CI_JOB_TOKEN} ${CI_REGISTRY} - > docker build --build-arg PARENT_IMAGE_NAME=${PARENT_IMAGE_NAME} --build-arg PARENT_IMAGE_TAG=${PARENT_IMAGE_TAG} -t ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA} -t ${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_NAME}-latest . - docker push ${CI_REGISTRY_IMAGE} docker-build-commit-master-branch: stage: package image: docker:stable variables: DOCKER_DRIVER: overlay2 PARENT_IMAGE_NAME: registry.gitlab.com/redmic-project/docker/redmic-server PARENT_IMAGE_TAG: latest services: - docker:dind only: - master script: - docker login -u gitlab-ci-token -p ${CI_JOB_TOKEN} ${CI_REGISTRY} - > docker build --build-arg PARENT_IMAGE_NAME=${PARENT_IMAGE_NAME} --build-arg PARENT_IMAGE_TAG=${PARENT_IMAGE_TAG} -t ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA} -t ${CI_REGISTRY_IMAGE}:latest . - docker push ${CI_REGISTRY_IMAGE} docker-tag-already-built-image: stage: package image: docker:stable variables: DOCKER_DRIVER: overlay2 services: - docker:dind only: - tags script: - docker login -u gitlab-ci-token -p ${CI_JOB_TOKEN} ${CI_REGISTRY} - docker pull ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA} - docker tag ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA} ${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG} - docker push ${CI_REGISTRY_IMAGE} container-scanning: stage: test-package image: docker:stable variables: DOCKER_DRIVER: overlay2 allow_failure: true services: - docker:stable-dind only: - branches script: - docker run -d --name db arminc/clair-db:latest - docker run -p 6060:6060 --link db:postgres -d --name clair arminc/clair-local-scan:v2.0.1 - apk add -U wget ca-certificates - docker login -u gitlab-ci-token -p ${CI_JOB_TOKEN} ${CI_REGISTRY} - docker pull ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA} - wget https://github.com/arminc/clair-scanner/releases/download/v8/clair-scanner_linux_amd64 - mv clair-scanner_linux_amd64 clair-scanner - chmod +x clair-scanner - touch clair-whitelist.yml - > ./clair-scanner -c http://docker:6060 --ip $(hostname -i) -r gl-sast-container-report.json -l clair.log -w clair-whitelist.yml ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA} || true artifacts: paths: [gl-sast-container-report.json] deploy-dev: stage: deploy image: registry.gitlab.com/redmic-project/docker/docker-deploy:${DOCKER_DEPLOY_IMAGE_TAG} variables: DOCKER_DRIVER: overlay2 SSH_REMOTE: ${DEV_SSH_REMOTE} STATUS_CHECK_DELAY: 120 DOCKER_BUILD_ARGS: --build-arg PARENT_IMAGE_NAME=${REDMIC_SERVER_IMAGE_NAME} --build-arg PARENT_IMAGE_TAG=${REDMIC_SERVER_IMAGE_TAG} STACK: vessel SERVICES_TO_CHECK: vessel_${CI_PROJECT_NAME} IMAGE_NAME: ${CI_REGISTRY_IMAGE} IMAGE_TAG: ${CI_COMMIT_SHA} COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.dev.yml SPRING_PROFILES_ACTIVE: pre PUBLIC_HOSTNAME: ${DEV_PUBLIC_HOSTNAME} services: - docker:dind .deploy: script: - > deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} SPRING_PROFILES_ACTIVE=${SPRING_PROFILES_ACTIVE} AISHUB_SERVICE_USERNAME=${AISHUB_SERVICE_USERNAME} APP_SCHEDULING_ENABLE=${APP_SCHEDULING_ENABLE} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME} environment: name: dev url: https://${DEV_PUBLIC_HOSTNAME}/api/${CI_PROJECT_NAME} only: - dev url: https://${PUBLIC_HOSTNAME}/api/${CI_PROJECT_NAME} deploy-supporting-branch: stage: deploy image: registry.gitlab.com/redmic-project/docker/docker-deploy:${DOCKER_DEPLOY_IMAGE_TAG} .deploy-development: variables: DOCKER_DRIVER: overlay2 SSH_REMOTE: ${DEV_SSH_REMOTE} STATUS_CHECK_DELAY: 120 STACK: vessel SERVICES_TO_CHECK: vessel_${CI_PROJECT_NAME} IMAGE_NAME: ${CI_REGISTRY_IMAGE} IMAGE_TAG: ${CI_COMMIT_SHA} COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.dev.yml SPRING_PROFILES_ACTIVE: pre PUBLIC_HOSTNAME: ${DEV_PUBLIC_HOSTNAME} services: - docker:dind script: - > deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} SPRING_PROFILES_ACTIVE=${SPRING_PROFILES_ACTIVE} AISHUB_SERVICE_USERNAME=${AISHUB_SERVICE_USERNAME} APP_SCHEDULING_ENABLE=${APP_SCHEDULING_ENABLE} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME} environment: name: dev url: https://${DEV_PUBLIC_HOSTNAME}/api/${CI_PROJECT_NAME} only: - branches except: - master - dev when: manual deploy-pro: stage: deploy image: registry.gitlab.com/redmic-project/docker/docker-deploy:${DOCKER_DEPLOY_IMAGE_TAG} .deploy-production: variables: DOCKER_DRIVER: overlay2 SSH_REMOTE: ${PRO_SSH_REMOTE} STATUS_CHECK_DELAY: 120 STACK: vessel SERVICES_TO_CHECK: vessel_${CI_PROJECT_NAME} IMAGE_NAME: ${CI_REGISTRY_IMAGE} IMAGE_TAG: ${CI_COMMIT_SHA} COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.prod.yml SPRING_PROFILES_ACTIVE: prod PUBLIC_HOSTNAME: ${PRO_PUBLIC_HOSTNAME} services: - docker:dind script: - > deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} SPRING_PROFILES_ACTIVE=${SPRING_PROFILES_ACTIVE} AISHUB_SERVICE_USERNAME=${AISHUB_SERVICE_USERNAME} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME} environment: name: pro url: https://${PRO_PUBLIC_HOSTNAME}/api/${CI_PROJECT_NAME} only: - master when: manual pom.xml +16 −1 Original line number Diff line number Diff line Loading @@ -14,7 +14,7 @@ <groupId>es.redmic</groupId> <artifactId>ais</artifactId> <packaging>jar</packaging> <version>0.8.0</version> <version>0.8.0-feature-updateCI</version> <name>AIS</name> <description>AIS rest consumer. Read vessels tracking and send to REDMIC system</description> Loading Loading @@ -154,6 +154,21 @@ </dependency> </dependencies> <repositories> <repository> <id>central</id> <name>libs-release</name> <url>https://artifactory.redmic.net/artifactory/libs-release</url> </repository> <repository> <id>snapshots</id> <name>libs-snapshot</name> <url>https://artifactory.redmic.net/artifactory/libs-snapshot</url> </repository> <repository> <id>osgeo</id> <name>Open Source Geospatial Foundation Repository</name> <url>http://download.osgeo.org/webdav/geotools/</url> </repository> <repository> <id>confluent</id> <name>Confluent</name> Loading Loading
.gitignore +1 −0 Original line number Diff line number Diff line Loading @@ -5,3 +5,4 @@ !.env target dist pom.xml.*
.gitlab-ci.yml +22 −175 Original line number Diff line number Diff line include: - project: 'redmic-project/gitlab-ci-templates' ref: master file: '/maven-building-microservice.yml' - project: 'redmic-project/gitlab-ci-templates' ref: master file: '/license-listing.yml' - project: 'redmic-project/gitlab-ci-templates' ref: master file: '/packaging.yml' - project: 'redmic-project/gitlab-ci-templates' ref: master file: '/deployment.yml' stages: - build - license-list - package - test-package - deploy maven-build: stage: build image: registry.gitlab.com/redmic-project/docker/maven:${MAVEN_IMAGE_TAG} variables: MAVEN_OPTS: -Dmaven.repo.local=.m2/repository SPRING_PROFILES_ACTIVE: test AISHUB_SERVICE_USERNAME: ${AISHUB_SERVICE_USERNAME} only: - branches cache: paths: - .m2/repository/ script: - mvn verify spring-boot:repackage -B - "COVERAGE=$(xmllint --html --xpath '//table[@id=\"coveragetable\"]/tfoot//td[@class=\"ctr2\"][1]/text()' target/site/jacoco/index.html)" - 'echo "Coverage: ${COVERAGE}"' after_script: - rm -r .m2/repository/es artifacts: name: "${CI_PROJECT_NAME}-${CI_COMMIT_REF_NAME}" expire_in: '6 months' paths: - dist/*.jar docker-build-commit-non-master-branches: stage: package image: docker:stable variables: DOCKER_DRIVER: overlay2 PARENT_IMAGE_NAME: registry.gitlab.com/redmic-project/docker/redmic-server PARENT_IMAGE_TAG: latest services: - docker:dind only: - branches except: - master script: - docker login -u gitlab-ci-token -p ${CI_JOB_TOKEN} ${CI_REGISTRY} - > docker build --build-arg PARENT_IMAGE_NAME=${PARENT_IMAGE_NAME} --build-arg PARENT_IMAGE_TAG=${PARENT_IMAGE_TAG} -t ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA} -t ${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_NAME}-latest . - docker push ${CI_REGISTRY_IMAGE} docker-build-commit-master-branch: stage: package image: docker:stable variables: DOCKER_DRIVER: overlay2 PARENT_IMAGE_NAME: registry.gitlab.com/redmic-project/docker/redmic-server PARENT_IMAGE_TAG: latest services: - docker:dind only: - master script: - docker login -u gitlab-ci-token -p ${CI_JOB_TOKEN} ${CI_REGISTRY} - > docker build --build-arg PARENT_IMAGE_NAME=${PARENT_IMAGE_NAME} --build-arg PARENT_IMAGE_TAG=${PARENT_IMAGE_TAG} -t ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA} -t ${CI_REGISTRY_IMAGE}:latest . - docker push ${CI_REGISTRY_IMAGE} docker-tag-already-built-image: stage: package image: docker:stable variables: DOCKER_DRIVER: overlay2 services: - docker:dind only: - tags script: - docker login -u gitlab-ci-token -p ${CI_JOB_TOKEN} ${CI_REGISTRY} - docker pull ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA} - docker tag ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA} ${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG} - docker push ${CI_REGISTRY_IMAGE} container-scanning: stage: test-package image: docker:stable variables: DOCKER_DRIVER: overlay2 allow_failure: true services: - docker:stable-dind only: - branches script: - docker run -d --name db arminc/clair-db:latest - docker run -p 6060:6060 --link db:postgres -d --name clair arminc/clair-local-scan:v2.0.1 - apk add -U wget ca-certificates - docker login -u gitlab-ci-token -p ${CI_JOB_TOKEN} ${CI_REGISTRY} - docker pull ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA} - wget https://github.com/arminc/clair-scanner/releases/download/v8/clair-scanner_linux_amd64 - mv clair-scanner_linux_amd64 clair-scanner - chmod +x clair-scanner - touch clair-whitelist.yml - > ./clair-scanner -c http://docker:6060 --ip $(hostname -i) -r gl-sast-container-report.json -l clair.log -w clair-whitelist.yml ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA} || true artifacts: paths: [gl-sast-container-report.json] deploy-dev: stage: deploy image: registry.gitlab.com/redmic-project/docker/docker-deploy:${DOCKER_DEPLOY_IMAGE_TAG} variables: DOCKER_DRIVER: overlay2 SSH_REMOTE: ${DEV_SSH_REMOTE} STATUS_CHECK_DELAY: 120 DOCKER_BUILD_ARGS: --build-arg PARENT_IMAGE_NAME=${REDMIC_SERVER_IMAGE_NAME} --build-arg PARENT_IMAGE_TAG=${REDMIC_SERVER_IMAGE_TAG} STACK: vessel SERVICES_TO_CHECK: vessel_${CI_PROJECT_NAME} IMAGE_NAME: ${CI_REGISTRY_IMAGE} IMAGE_TAG: ${CI_COMMIT_SHA} COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.dev.yml SPRING_PROFILES_ACTIVE: pre PUBLIC_HOSTNAME: ${DEV_PUBLIC_HOSTNAME} services: - docker:dind .deploy: script: - > deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} SPRING_PROFILES_ACTIVE=${SPRING_PROFILES_ACTIVE} AISHUB_SERVICE_USERNAME=${AISHUB_SERVICE_USERNAME} APP_SCHEDULING_ENABLE=${APP_SCHEDULING_ENABLE} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME} environment: name: dev url: https://${DEV_PUBLIC_HOSTNAME}/api/${CI_PROJECT_NAME} only: - dev url: https://${PUBLIC_HOSTNAME}/api/${CI_PROJECT_NAME} deploy-supporting-branch: stage: deploy image: registry.gitlab.com/redmic-project/docker/docker-deploy:${DOCKER_DEPLOY_IMAGE_TAG} .deploy-development: variables: DOCKER_DRIVER: overlay2 SSH_REMOTE: ${DEV_SSH_REMOTE} STATUS_CHECK_DELAY: 120 STACK: vessel SERVICES_TO_CHECK: vessel_${CI_PROJECT_NAME} IMAGE_NAME: ${CI_REGISTRY_IMAGE} IMAGE_TAG: ${CI_COMMIT_SHA} COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.dev.yml SPRING_PROFILES_ACTIVE: pre PUBLIC_HOSTNAME: ${DEV_PUBLIC_HOSTNAME} services: - docker:dind script: - > deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} SPRING_PROFILES_ACTIVE=${SPRING_PROFILES_ACTIVE} AISHUB_SERVICE_USERNAME=${AISHUB_SERVICE_USERNAME} APP_SCHEDULING_ENABLE=${APP_SCHEDULING_ENABLE} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME} environment: name: dev url: https://${DEV_PUBLIC_HOSTNAME}/api/${CI_PROJECT_NAME} only: - branches except: - master - dev when: manual deploy-pro: stage: deploy image: registry.gitlab.com/redmic-project/docker/docker-deploy:${DOCKER_DEPLOY_IMAGE_TAG} .deploy-production: variables: DOCKER_DRIVER: overlay2 SSH_REMOTE: ${PRO_SSH_REMOTE} STATUS_CHECK_DELAY: 120 STACK: vessel SERVICES_TO_CHECK: vessel_${CI_PROJECT_NAME} IMAGE_NAME: ${CI_REGISTRY_IMAGE} IMAGE_TAG: ${CI_COMMIT_SHA} COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.prod.yml SPRING_PROFILES_ACTIVE: prod PUBLIC_HOSTNAME: ${PRO_PUBLIC_HOSTNAME} services: - docker:dind script: - > deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} SPRING_PROFILES_ACTIVE=${SPRING_PROFILES_ACTIVE} AISHUB_SERVICE_USERNAME=${AISHUB_SERVICE_USERNAME} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME} environment: name: pro url: https://${PRO_PUBLIC_HOSTNAME}/api/${CI_PROJECT_NAME} only: - master when: manual
pom.xml +16 −1 Original line number Diff line number Diff line Loading @@ -14,7 +14,7 @@ <groupId>es.redmic</groupId> <artifactId>ais</artifactId> <packaging>jar</packaging> <version>0.8.0</version> <version>0.8.0-feature-updateCI</version> <name>AIS</name> <description>AIS rest consumer. Read vessels tracking and send to REDMIC system</description> Loading Loading @@ -154,6 +154,21 @@ </dependency> </dependencies> <repositories> <repository> <id>central</id> <name>libs-release</name> <url>https://artifactory.redmic.net/artifactory/libs-release</url> </repository> <repository> <id>snapshots</id> <name>libs-snapshot</name> <url>https://artifactory.redmic.net/artifactory/libs-snapshot</url> </repository> <repository> <id>osgeo</id> <name>Open Source Geospatial Foundation Repository</name> <url>http://download.osgeo.org/webdav/geotools/</url> </repository> <repository> <id>confluent</id> <name>Confluent</name> Loading