Skip to content
Snippets Groups Projects
Verified Commit 676e8159 authored by Martin Weise's avatar Martin Weise
Browse files

FInish up

parent 54dd9ed4
No related branches found
No related tags found
6 merge requests!345Updated docs and endpoints:,!341Fixed mapping problem where UK and FK share columns they are inserted,!339Fixed mapping problem where UK and FK share columns they are inserted,!338Fixed mapping problem where UK and FK share columns they are inserted,!334Fixed mapping problem where UK and FK share columns they are inserted,!333Fixed mapping problem where UK and FK share columns they are inserted
......@@ -24,288 +24,288 @@ cache:
- .m2/repository
stages:
# - build
# - lint
- build
- lint
- test
# - docs
# - release
# - verify
# - scan
#
#build-metadata-service:
# image: maven:3-openjdk-17
# stage: build
# script:
# - "mvn -f ./dbrepo-metadata-service/pom.xml clean install $MAVEN_OPTS -DskipTests"
# # Compiled classes are needed for SonarQube in later stages
# artifacts:
# when: always
# paths:
# - ./dbrepo-metadata-service/test/target/classes
# - ./dbrepo-metadata-service/services/target/classes
# - ./dbrepo-metadata-service/repositories/target/classes
# - ./dbrepo-metadata-service/rest-service/target/classes
# - ./dbrepo-metadata-service/api/target/classes
# - ./dbrepo-metadata-service/oai/target/classes
# - ./dbrepo-metadata-service/entities/target/classes
# expire_in: 1 days
#
#build-analyse-service:
# image: docker.io/python:3.11-alpine
# stage: build
# variables:
# PIPENV_PIPFILE: "./dbrepo-analyse-service/Pipfile"
# script:
# - "pip install pipenv"
# - "pipenv install gunicorn && pipenv install --dev --system --deploy"
#
#build-data-db-sidecar:
# image: docker.io/python:3.11-alpine
# stage: build
# variables:
# PIPENV_PIPFILE: "./dbrepo-data-db/sidecar/Pipfile"
# script:
# - "pip install pipenv"
# - "pipenv install gunicorn && pipenv install --dev --system --deploy"
#
#build-lib:
# image: docker.io/python:3.11-alpine
# stage: build
# variables:
# PIPENV_PIPFILE: "./lib/python/Pipfile"
# script:
# - "pip install pipenv"
# - "pipenv install gunicorn && pipenv install --dev --system --deploy"
#
#build-data-service:
# image: maven:3-openjdk-17
# stage: build
# needs:
# - build-metadata-service
# dependencies:
# - build-metadata-service
# script:
# - "mvn -f ./dbrepo-metadata-service/pom.xml clean install $MAVEN_OPTS -DskipTests"
# - "mvn -f ./dbrepo-data-service/pom.xml clean package $MAVEN_OPTS -DskipTests"
# # Compiled classes are needed for SonarQube in later stages
# artifacts:
# when: always
# paths:
# - ./dbrepo-data-service/services/target/classes
# - ./dbrepo-data-service/rest-service/target/classes
# - ./dbrepo-data-service/querystore/target/classes
# expire_in: 1 days
#
#build-ui:
# image: oven/bun:1.1.20-alpine
# stage: build
# script:
# - "cd ./dbrepo-ui && bun install && bun run build"
#
#build-search-service:
# image: docker.io/python:3.11-alpine
# stage: build
# script:
# - "pip install pipenv"
# - "cd dbrepo-search-service && pipenv install --system --deploy"
#
#build-docker:
# image: docker.io/docker:24-dind
# stage: build
# before_script:
# - echo "$CI_REGISTRY_PASSWORD" | docker login --username "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY_URL
# script:
# - "docker build -t dbrepo-metadata-service:build --target build dbrepo-metadata-service"
# - "docker build -t dbrepo-data-service:build --target build dbrepo-data-service"
# - "docker compose build --parallel"
#
#build-helm:
# image: docker.io/docker:24-dind
# stage: build
# before_script:
# - echo "$CI_GPG_KEYRING" | base64 -d > ./secring.gpg
# - echo "$CI_REGISTRY_PASSWORD" | docker login --username "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY_URL
# script:
# - apk add sed helm curl
# - helm package ./helm/dbrepo --destination ./build
#
#lint-docker-compose:
# image: docker.io/alpine:3.18
# stage: lint
# variables:
# VERSION: 3.3.0
# BINARY: yq_linux_amd64
# before_script:
# - 'apk --no-cache add bash wget'
# - 'wget https://github.com/mikefarah/yq/releases/download/${VERSION}/${BINARY} -O /usr/bin/yq && chmod +x /usr/bin/yq'
# - 'ls -la .scripts'
# script:
# - "yq compare -P docker-compose.yml .docker/docker-compose.yml 'volumes.*'"
# - "IGNORE_IMAGE=1 IGNORE_PORTS=1 bash .scripts/check-service.sh 'dbrepo-analyse-service'"
# - "bash .scripts/check-service.sh 'dbrepo-auth-db'"
# - "IGNORE_IMAGE=1 IGNORE_PORTS=1 bash .scripts/check-service.sh 'dbrepo-auth-service'"
# - "IGNORE_IMAGE=1 IGNORE_PORTS=1 bash .scripts/check-service.sh 'dbrepo-broker-service'"
# - "IGNORE_PORTS=1 bash .scripts/check-service.sh 'dbrepo-dashboard-service'"
# - "bash .scripts/check-service.sh 'dbrepo-data-db'"
# - "IGNORE_IMAGE=1 IGNORE_PORTS=1 bash .scripts/check-service.sh 'dbrepo-data-db-sidecar'"
# - "IGNORE_IMAGE=1 IGNORE_PORTS=1 bash .scripts/check-service.sh 'dbrepo-data-service'"
# - "IGNORE_VOLUMES=1 bash .scripts/check-service.sh 'dbrepo-gateway-service'"
# - "IGNORE_VOLUMES=1 bash .scripts/check-service.sh 'dbrepo-identity-service'"
# - "IGNORE_VOLUMES=1 bash .scripts/check-service.sh 'dbrepo-metadata-db'"
# - "IGNORE_IMAGE=1 IGNORE_PORTS=1 bash .scripts/check-service.sh 'dbrepo-metadata-service'"
# - "IGNORE_VOLUMES=1 bash .scripts/check-service.sh 'dbrepo-metric-db'"
# - "IGNORE_IMAGE=1 bash .scripts/check-service.sh 'dbrepo-search-db'"
# - "IGNORE_IMAGE=1 IGNORE_PORTS=1 bash .scripts/check-service.sh 'dbrepo-search-service'"
# - "IGNORE_IMAGE=1 bash .scripts/check-service.sh 'dbrepo-search-service-init'"
# - "IGNORE_VOLUMES=1 bash .scripts/check-service.sh 'dbrepo-storage-service'"
# - "IGNORE_VOLUMES=1 bash .scripts/check-service.sh 'dbrepo-storage-service-init'"
# - "IGNORE_IMAGE=1 bash .scripts/check-service.sh 'dbrepo-ui'"
# - "bash .scripts/check-service.sh 'dbrepo-upload-service'"
#
#verify-install-script:
# image: docker.io/docker:24-dind
# stage: verify
# only:
# refs:
# - /^release-.*/
# variables:
# SKIP_CHECKS: 1
# script:
# - apk add bash curl
# - bash install.sh
# - exit 0
#
#lint-helm-chart:
# image: docker.io/alpine:3.20
# stage: lint
# needs:
# - build-metadata-service
# dependencies:
# - build-metadata-service
# before_script:
# - apk add helm
# script:
# - helm lint ./helm/dbrepo
#
#test-metadata-service:
# image: maven:3-openjdk-17
# stage: test
# needs:
# - build-metadata-service
# dependencies:
# - build-metadata-service
# script:
# - "mvn -f ./dbrepo-metadata-service/pom.xml clean test $MAVEN_OPTS verify"
# - "cat ./dbrepo-metadata-service/report/target/site/jacoco-aggregate/index.html | grep -o 'Total[^%]*%' | sed 's/<.*>/ /; s/Total/Jacoco Coverage Total:/'"
# artifacts:
# when: always
# paths:
# - ./dbrepo-metadata-service/report/target/site/jacoco-aggregate/
# - ./dbrepo-metadata-service/rest-service/target/surefire-reports/
# expire_in: 1 days
# reports:
# junit: ./dbrepo-metadata-service/rest-service/target/surefire-reports/TEST-*.xml
# coverage: '/Total.*?([0-9]{1,3})%/'
#
#test-data-service:
# image: maven:3-openjdk-17
# stage: test
# needs:
# - build-data-service
# dependencies:
# - build-data-service
# script:
# - "mvn -f ./dbrepo-data-service/pom.xml clean test verify $MAVEN_OPTS"
# - "cat ./dbrepo-data-service/report/target/site/jacoco-aggregate/index.html | grep -o 'Total[^%]*%' | sed 's/<.*>/ /; s/Total/Jacoco Coverage Total:/'"
# artifacts:
# when: always
# paths:
# - ./dbrepo-data-service/report/target/site/jacoco-aggregate/
# - ./dbrepo-data-service/rest-service/target/surefire-reports/
# expire_in: 1 days
# reports:
# junit: ./dbrepo-data-service/rest-service/target/surefire-reports/TEST-*.xml
# coverage: '/Total.*?([0-9]{1,3})%/'
#
#test-analyse-service:
# image: docker.io/python:3.11-alpine
# stage: test
# variables:
# PIPENV_PIPFILE: "./dbrepo-analyse-service/Pipfile"
# needs:
# - build-analyse-service
# dependencies:
# - build-analyse-service
# script:
# - "pip install pipenv"
# - "pipenv install gunicorn && pipenv install --dev --system --deploy"
# - cd ./dbrepo-analyse-service/ && coverage run -m pytest test/test_determine_dt.py test/test_determine_pk.py test/test_s3_client.py --junitxml=report.xml && coverage html --omit="test/*" && coverage report --omit="test/*" > ./coverage.txt
# - "cat ./coverage.txt | grep -o 'TOTAL[^%]*%'"
# artifacts:
# when: always
# paths:
# - ./dbrepo-analyse-service/report.xml
# - ./dbrepo-analyse-service/coverage.txt
# expire_in: 1 days
# reports:
# junit: ./dbrepo-analyse-service/report.xml
# coverage: '/TOTAL.*?([0-9]{1,3})%/'
#
#test-search-service:
# image: docker.io/python:3.11-alpine
# stage: test
# variables:
# PIPENV_PIPFILE: "./dbrepo-search-service/Pipfile"
# needs:
# - build-search-service
# dependencies:
# - build-search-service
# script:
# - "pip install pipenv"
# - "pipenv install gunicorn && pipenv install --dev --system --deploy"
# - cd ./dbrepo-search-service/ && coverage run -m pytest test/test_opensearch_client.py --junitxml=report.xml && coverage html --omit="test/*,omlib/*" && coverage report --omit="test/*,omlib/*" > ./coverage.txt
# - "cat ./coverage.txt | grep -o 'TOTAL[^%]*%'"
# artifacts:
# when: always
# paths:
# - ./dbrepo-search-service/report.xml
# - ./dbrepo-search-service/coverage.txt
# expire_in: 1 days
# reports:
# junit: ./dbrepo-search-service/report.xml
# coverage: '/TOTAL.*?([0-9]{1,3})%/'
#
#test-lib:
# image: docker.io/python:3.11-alpine
# stage: test
# variables:
# PIPENV_PIPFILE: "./lib/python/Pipfile"
# needs:
# - build-lib
# dependencies:
# - build-lib
# script:
# - "pip install pipenv"
# - "pipenv install gunicorn && pipenv install --dev --system --deploy"
# - cd ./lib/python/ && coverage run -m pytest tests/test_unit_analyse.py tests/test_unit_container.py tests/test_unit_database.py tests/test_unit_identifier.py tests/test_unit_license.py tests/test_unit_query.py tests/test_unit_rest_client.py tests/test_unit_table.py tests/test_unit_user.py tests/test_unit_view.py --junitxml=report.xml && coverage html --omit="test/*" && coverage report --omit="test/*" > ./coverage.txt
# - "cat ./coverage.txt | grep -o 'TOTAL[^%]*%'"
# artifacts:
# when: always
# paths:
# - ./lib/python/report.xml
# - ./lib/python/coverage.txt
# expire_in: 1 days
# reports:
# junit: ./lib/python/report.xml
# coverage: '/TOTAL.*?([0-9]{1,3})%/'
- docs
- release
- verify
- scan
build-metadata-service:
image: maven:3-openjdk-17
stage: build
script:
- "mvn -f ./dbrepo-metadata-service/pom.xml clean install $MAVEN_OPTS -DskipTests"
# Compiled classes are needed for SonarQube in later stages
artifacts:
when: always
paths:
- ./dbrepo-metadata-service/test/target/classes
- ./dbrepo-metadata-service/services/target/classes
- ./dbrepo-metadata-service/repositories/target/classes
- ./dbrepo-metadata-service/rest-service/target/classes
- ./dbrepo-metadata-service/api/target/classes
- ./dbrepo-metadata-service/oai/target/classes
- ./dbrepo-metadata-service/entities/target/classes
expire_in: 1 days
build-analyse-service:
image: docker.io/python:3.11-alpine
stage: build
variables:
PIPENV_PIPFILE: "./dbrepo-analyse-service/Pipfile"
script:
- "pip install pipenv"
- "pipenv install gunicorn && pipenv install --dev --system --deploy"
build-data-db-sidecar:
image: docker.io/python:3.11-alpine
stage: build
variables:
PIPENV_PIPFILE: "./dbrepo-data-db/sidecar/Pipfile"
script:
- "pip install pipenv"
- "pipenv install gunicorn && pipenv install --dev --system --deploy"
build-lib:
image: docker.io/python:3.11-alpine
stage: build
variables:
PIPENV_PIPFILE: "./lib/python/Pipfile"
script:
- "pip install pipenv"
- "pipenv install gunicorn && pipenv install --dev --system --deploy"
build-data-service:
image: maven:3-openjdk-17
stage: build
needs:
- build-metadata-service
dependencies:
- build-metadata-service
script:
- "mvn -f ./dbrepo-metadata-service/pom.xml clean install $MAVEN_OPTS -DskipTests"
- "mvn -f ./dbrepo-data-service/pom.xml clean package $MAVEN_OPTS -DskipTests"
# Compiled classes are needed for SonarQube in later stages
artifacts:
when: always
paths:
- ./dbrepo-data-service/services/target/classes
- ./dbrepo-data-service/rest-service/target/classes
- ./dbrepo-data-service/querystore/target/classes
expire_in: 1 days
build-ui:
image: oven/bun:1.1.20-alpine
stage: build
script:
- "cd ./dbrepo-ui && bun install && bun run build"
build-search-service:
image: docker.io/python:3.11-alpine
stage: build
script:
- "pip install pipenv"
- "cd dbrepo-search-service && pipenv install --system --deploy"
build-docker:
image: docker.io/docker:24-dind
stage: build
before_script:
- echo "$CI_REGISTRY_PASSWORD" | docker login --username "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY_URL
script:
- "docker build -t dbrepo-metadata-service:build --target build dbrepo-metadata-service"
- "docker build -t dbrepo-data-service:build --target build dbrepo-data-service"
- "docker compose build --parallel"
build-helm:
image: docker.io/docker:24-dind
stage: build
before_script:
- echo "$CI_GPG_KEYRING" | base64 -d > ./secring.gpg
- echo "$CI_REGISTRY_PASSWORD" | docker login --username "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY_URL
script:
- apk add sed helm curl
- helm package ./helm/dbrepo --destination ./build
lint-docker-compose:
image: docker.io/alpine:3.18
stage: lint
variables:
VERSION: 3.3.0
BINARY: yq_linux_amd64
before_script:
- 'apk --no-cache add bash wget'
- 'wget https://github.com/mikefarah/yq/releases/download/${VERSION}/${BINARY} -O /usr/bin/yq && chmod +x /usr/bin/yq'
- 'ls -la .scripts'
script:
- "yq compare -P docker-compose.yml .docker/docker-compose.yml 'volumes.*'"
- "IGNORE_IMAGE=1 IGNORE_PORTS=1 bash .scripts/check-service.sh 'dbrepo-analyse-service'"
- "bash .scripts/check-service.sh 'dbrepo-auth-db'"
- "IGNORE_IMAGE=1 IGNORE_PORTS=1 bash .scripts/check-service.sh 'dbrepo-auth-service'"
- "IGNORE_IMAGE=1 IGNORE_PORTS=1 bash .scripts/check-service.sh 'dbrepo-broker-service'"
- "IGNORE_PORTS=1 bash .scripts/check-service.sh 'dbrepo-dashboard-service'"
- "bash .scripts/check-service.sh 'dbrepo-data-db'"
- "IGNORE_IMAGE=1 IGNORE_PORTS=1 bash .scripts/check-service.sh 'dbrepo-data-db-sidecar'"
- "IGNORE_IMAGE=1 IGNORE_PORTS=1 bash .scripts/check-service.sh 'dbrepo-data-service'"
- "IGNORE_VOLUMES=1 bash .scripts/check-service.sh 'dbrepo-gateway-service'"
- "IGNORE_VOLUMES=1 bash .scripts/check-service.sh 'dbrepo-identity-service'"
- "IGNORE_VOLUMES=1 bash .scripts/check-service.sh 'dbrepo-metadata-db'"
- "IGNORE_IMAGE=1 IGNORE_PORTS=1 bash .scripts/check-service.sh 'dbrepo-metadata-service'"
- "IGNORE_VOLUMES=1 bash .scripts/check-service.sh 'dbrepo-metric-db'"
- "IGNORE_IMAGE=1 bash .scripts/check-service.sh 'dbrepo-search-db'"
- "IGNORE_IMAGE=1 IGNORE_PORTS=1 bash .scripts/check-service.sh 'dbrepo-search-service'"
- "IGNORE_IMAGE=1 bash .scripts/check-service.sh 'dbrepo-search-service-init'"
- "IGNORE_VOLUMES=1 bash .scripts/check-service.sh 'dbrepo-storage-service'"
- "IGNORE_VOLUMES=1 bash .scripts/check-service.sh 'dbrepo-storage-service-init'"
- "IGNORE_IMAGE=1 bash .scripts/check-service.sh 'dbrepo-ui'"
- "bash .scripts/check-service.sh 'dbrepo-upload-service'"
verify-install-script:
image: docker.io/docker:24-dind
stage: verify
only:
refs:
- /^release-.*/
variables:
SKIP_CHECKS: 1
script:
- apk add bash curl
- bash install.sh
- exit 0
lint-helm-chart:
image: docker.io/alpine:3.20
stage: lint
needs:
- build-metadata-service
dependencies:
- build-metadata-service
before_script:
- apk add helm
script:
- helm lint ./helm/dbrepo
test-metadata-service:
image: maven:3-openjdk-17
stage: test
needs:
- build-metadata-service
dependencies:
- build-metadata-service
script:
- "mvn -f ./dbrepo-metadata-service/pom.xml clean test $MAVEN_OPTS verify"
- "cat ./dbrepo-metadata-service/report/target/site/jacoco-aggregate/index.html | grep -o 'Total[^%]*%' | sed 's/<.*>/ /; s/Total/Jacoco Coverage Total:/'"
artifacts:
when: always
paths:
- ./dbrepo-metadata-service/report/target/site/jacoco-aggregate/
- ./dbrepo-metadata-service/rest-service/target/surefire-reports/
expire_in: 1 days
reports:
junit: ./dbrepo-metadata-service/rest-service/target/surefire-reports/TEST-*.xml
coverage: '/Total.*?([0-9]{1,3})%/'
test-data-service:
image: maven:3-openjdk-17
stage: test
needs:
- build-data-service
dependencies:
- build-data-service
script:
- "mvn -f ./dbrepo-data-service/pom.xml clean test verify $MAVEN_OPTS"
- "cat ./dbrepo-data-service/report/target/site/jacoco-aggregate/index.html | grep -o 'Total[^%]*%' | sed 's/<.*>/ /; s/Total/Jacoco Coverage Total:/'"
artifacts:
when: always
paths:
- ./dbrepo-data-service/report/target/site/jacoco-aggregate/
- ./dbrepo-data-service/rest-service/target/surefire-reports/
expire_in: 1 days
reports:
junit: ./dbrepo-data-service/rest-service/target/surefire-reports/TEST-*.xml
coverage: '/Total.*?([0-9]{1,3})%/'
test-analyse-service:
image: docker.io/python:3.11-alpine
stage: test
variables:
PIPENV_PIPFILE: "./dbrepo-analyse-service/Pipfile"
needs:
- build-analyse-service
dependencies:
- build-analyse-service
script:
- "pip install pipenv"
- "pipenv install gunicorn && pipenv install --dev --system --deploy"
- cd ./dbrepo-analyse-service/ && coverage run -m pytest test/test_determine_dt.py test/test_determine_pk.py test/test_s3_client.py --junitxml=report.xml && coverage html --omit="test/*" && coverage report --omit="test/*" > ./coverage.txt
- "cat ./coverage.txt | grep -o 'TOTAL[^%]*%'"
artifacts:
when: always
paths:
- ./dbrepo-analyse-service/report.xml
- ./dbrepo-analyse-service/coverage.txt
expire_in: 1 days
reports:
junit: ./dbrepo-analyse-service/report.xml
coverage: '/TOTAL.*?([0-9]{1,3})%/'
test-search-service:
image: docker.io/python:3.11-alpine
stage: test
variables:
PIPENV_PIPFILE: "./dbrepo-search-service/Pipfile"
needs:
- build-search-service
dependencies:
- build-search-service
script:
- "pip install pipenv"
- "pipenv install gunicorn && pipenv install --dev --system --deploy"
- cd ./dbrepo-search-service/ && coverage run -m pytest test/test_opensearch_client.py --junitxml=report.xml && coverage html --omit="test/*,omlib/*" && coverage report --omit="test/*,omlib/*" > ./coverage.txt
- "cat ./coverage.txt | grep -o 'TOTAL[^%]*%'"
artifacts:
when: always
paths:
- ./dbrepo-search-service/report.xml
- ./dbrepo-search-service/coverage.txt
expire_in: 1 days
reports:
junit: ./dbrepo-search-service/report.xml
coverage: '/TOTAL.*?([0-9]{1,3})%/'
test-lib:
image: docker.io/python:3.11-alpine
stage: test
variables:
PIPENV_PIPFILE: "./lib/python/Pipfile"
needs:
- build-lib
dependencies:
- build-lib
script:
- "pip install pipenv"
- "pipenv install gunicorn && pipenv install --dev --system --deploy"
- cd ./lib/python/ && coverage run -m pytest tests/test_unit_analyse.py tests/test_unit_container.py tests/test_unit_database.py tests/test_unit_identifier.py tests/test_unit_license.py tests/test_unit_query.py tests/test_unit_rest_client.py tests/test_unit_table.py tests/test_unit_user.py tests/test_unit_view.py --junitxml=report.xml && coverage html --omit="test/*" && coverage report --omit="test/*" > ./coverage.txt
- "cat ./coverage.txt | grep -o 'TOTAL[^%]*%'"
artifacts:
when: always
paths:
- ./lib/python/report.xml
- ./lib/python/coverage.txt
expire_in: 1 days
reports:
junit: ./lib/python/report.xml
coverage: '/TOTAL.*?([0-9]{1,3})%/'
test-ui:
stage: test
image: docker.io/docker:24-dind
# needs:
# - build-ui
# dependencies:
# - build-ui
needs:
- build-ui
dependencies:
- build-ui
before_script:
- "apk add bash apache2-utils"
- "docker compose build dbrepo-ui"
......@@ -314,125 +314,125 @@ test-ui:
- "sleep 30"
- "ENDPOINT=http://localhost:3000 bash ./dbrepo-ui/test/test_heap.sh"
#scan-sonarqube:
# image: sonarsource/sonar-scanner-cli:10.0
# stage: scan
# only:
# refs:
# - master
# needs:
# - build-data-service
# - build-metadata-service
# dependencies:
# - build-data-service
# - build-metadata-service
# script:
# - 'sonar-scanner -Dsonar.token="${CI_SONAR_TOKEN}"'
# allow_failure: true
# cache:
# policy: pull
# key: "${CI_COMMIT_SHORT_SHA}"
# paths:
# - sonar-scanner/
#
#docs-registry:
# stage: docs
# image: docker.io/python:3.11-slim
# only:
# refs:
# - /^release-.*/
# before_script:
# - "apt-get update && apt-get install -y sed"
# script:
# - pip install -r ./requirements.txt
# - python3 .docs/docker/release.py
#
#release-images:
# stage: release
# image: docker:24-dind
# dependencies:
# - test-metadata-service
# - test-data-service
# - test-analyse-service
# only:
# refs:
# - /^release-.*/
# before_script:
# - "docker logout ${CI_REGISTRY_URL}"
# - "echo ${CI_REGISTRY_PASSWORD} | docker login --username ${CI_REGISTRY_USER} --password-stdin ${CI_REGISTRY_URL}"
# - "docker logout ${CI_REGISTRY2_URL}"
# - "echo ${CI_REGISTRY2_PASSWORD} | docker login --username ${CI_REGISTRY2_USER} --password-stdin ${CI_REGISTRY2_URL}"
# - "ifconfig eth0 mtu 1450 up"
# - "apk add make bash"
# script:
# - "make release-images"
#
#release-helm:
# stage: release
# image: docker:24-dind
# only:
# refs:
# - /^release-.*/
# when: manual
# before_script:
# - "docker logout ${CI_REGISTRY_URL}"
# - "echo ${CI_REGISTRY_PASSWORD} | docker login --username ${CI_REGISTRY_USER} --password-stdin ${CI_REGISTRY_URL}"
# - "docker logout ${CI_REGISTRY2_URL}"
# - "echo ${CI_REGISTRY2_PASSWORD} | docker login --username ${CI_REGISTRY2_USER} --password-stdin ${CI_REGISTRY2_URL}"
# - "apk add sed helm curl"
# - "mkdir -p ~/.gnupg"
# - echo "$CI_GPG_KEYRING" | base64 -d > ~/.gnupg/secring.gpg
# - echo "$CI_GPG_KEYRING2" | base64 -d > ~/.gnupg/pubring.gpg
# - "helm package ./helm/dbrepo --sign --key 'Martin Weise' --keyring ~/.gnupg/secring.gpg --destination ./build"
# - "helm plugin install https://github.com/sigstore/helm-sigstore"
# script:
# - "helm push ./build/dbrepo-${CHART_VERSION}.tgz oci://${CI_REGISTRY2_URL}/helm"
# - "helm sigstore upload ./build/dbrepo-${CHART_VERSION}.tgz"
#
#release-docs:
# stage: release
# image: docker.io/python:3.11-alpine
# only:
# refs:
# - /^release-.*/
# before_script:
# - "apk add --update alpine-sdk bash sed wget openssh jq curl"
# - "pip install pipenv"
# - "pip install -r ./requirements.txt"
# - "mkdir -p ./final/${APP_VERSION}/rest"
# script:
# - "make gen-lib-doc gen-docs-doc package-config"
# - "cp -r ./lib/python/docs/build/html ./final/${APP_VERSION}/python" # sphinx
# - "cp .docs/.swagger/api.yaml ./final/${APP_VERSION}/rest/api.yaml" # swagger
# - "cp .docs/.swagger/swagger-ui.html ./final/${APP_VERSION}/rest/index.html" # swagger
# - "cp .docs/.swagger/custom.css ./final/${APP_VERSION}/rest/custom.css" # swagger
# - "cp -r ./site/* ./final/${APP_VERSION}" # mkdocs
# - "cp .docker/dist.tar.gz ./final/${APP_VERSION}/dist.tar.gz" # dist
# - "bash ./.gitlab/gen-badge.sh"
# - eval $(ssh-agent -s)
# - "mkdir -p /root/.ssh"
# - echo "$CI_KEY_PRIVATE" > /root/.ssh/id_rsa && chmod 0600 /root/.ssh/id_rsa
# - echo "$CI_KEY_PUBLIC" > /root/.ssh/id_rsa.pub
# - echo "$CI_DOC_ID" > ~/.ssh/known_hosts
# - tar czf ./final.tar.gz ./final
# - "scp -oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedAlgorithms=+ssh-rsa final.tar.gz $CI_DOC_USER@$CI_DOC_IP:final.tar.gz"
# - "scp -oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedAlgorithms=+ssh-rsa versions.json $CI_DOC_USER@$CI_DOC_IP:/system/user/ifs/infrastructures/public_html/dbrepo/versions.json"
# - "scp -oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedAlgorithms=+ssh-rsa .docs/redirect.html $CI_DOC_USER@$CI_DOC_IP:/system/user/ifs/infrastructures/public_html/dbrepo/index.html"
# - 'ssh -oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedAlgorithms=+ssh-rsa $CI_DOC_USER@$CI_DOC_IP "rm -rf /system/user/ifs/infrastructures/public_html/dbrepo/${APP_VERSION}; tar xzf ./final.tar.gz; rm -f ./final.tar.gz; cp -r ./final/* /system/user/ifs/infrastructures/public_html/dbrepo/${APP_VERSION}; rm -rf ./final"'
#
#release-libs:
# stage: release
# image: docker.io/python:3.11-alpine
# when: manual
# only:
# refs:
# - /^release-.*/
# variables:
# PIPENV_PIPFILE: "./dbrepo-analyse-service/Pipfile"
# before_script:
# - "apk add sed bash"
# - "pip install pipenv twine build"
# - "pipenv install gunicorn && pipenv install --dev --system --deploy"
# script:
# - bash ./lib/python/package.sh
# - bash ./lib/python/release.sh
scan-sonarqube:
image: sonarsource/sonar-scanner-cli:10.0
stage: scan
only:
refs:
- master
needs:
- build-data-service
- build-metadata-service
dependencies:
- build-data-service
- build-metadata-service
script:
- 'sonar-scanner -Dsonar.token="${CI_SONAR_TOKEN}"'
allow_failure: true
cache:
policy: pull
key: "${CI_COMMIT_SHORT_SHA}"
paths:
- sonar-scanner/
docs-registry:
stage: docs
image: docker.io/python:3.11-slim
only:
refs:
- /^release-.*/
before_script:
- "apt-get update && apt-get install -y sed"
script:
- pip install -r ./requirements.txt
- python3 .docs/docker/release.py
release-images:
stage: release
image: docker:24-dind
dependencies:
- test-metadata-service
- test-data-service
- test-analyse-service
only:
refs:
- /^release-.*/
before_script:
- "docker logout ${CI_REGISTRY_URL}"
- "echo ${CI_REGISTRY_PASSWORD} | docker login --username ${CI_REGISTRY_USER} --password-stdin ${CI_REGISTRY_URL}"
- "docker logout ${CI_REGISTRY2_URL}"
- "echo ${CI_REGISTRY2_PASSWORD} | docker login --username ${CI_REGISTRY2_USER} --password-stdin ${CI_REGISTRY2_URL}"
- "ifconfig eth0 mtu 1450 up"
- "apk add make bash"
script:
- "make release-images"
release-helm:
stage: release
image: docker:24-dind
only:
refs:
- /^release-.*/
when: manual
before_script:
- "docker logout ${CI_REGISTRY_URL}"
- "echo ${CI_REGISTRY_PASSWORD} | docker login --username ${CI_REGISTRY_USER} --password-stdin ${CI_REGISTRY_URL}"
- "docker logout ${CI_REGISTRY2_URL}"
- "echo ${CI_REGISTRY2_PASSWORD} | docker login --username ${CI_REGISTRY2_USER} --password-stdin ${CI_REGISTRY2_URL}"
- "apk add sed helm curl"
- "mkdir -p ~/.gnupg"
- echo "$CI_GPG_KEYRING" | base64 -d > ~/.gnupg/secring.gpg
- echo "$CI_GPG_KEYRING2" | base64 -d > ~/.gnupg/pubring.gpg
- "helm package ./helm/dbrepo --sign --key 'Martin Weise' --keyring ~/.gnupg/secring.gpg --destination ./build"
- "helm plugin install https://github.com/sigstore/helm-sigstore"
script:
- "helm push ./build/dbrepo-${CHART_VERSION}.tgz oci://${CI_REGISTRY2_URL}/helm"
- "helm sigstore upload ./build/dbrepo-${CHART_VERSION}.tgz"
release-docs:
stage: release
image: docker.io/python:3.11-alpine
only:
refs:
- /^release-.*/
before_script:
- "apk add --update alpine-sdk bash sed wget openssh jq curl"
- "pip install pipenv"
- "pip install -r ./requirements.txt"
- "mkdir -p ./final/${APP_VERSION}/rest"
script:
- "make gen-lib-doc gen-docs-doc package-config"
- "cp -r ./lib/python/docs/build/html ./final/${APP_VERSION}/python" # sphinx
- "cp .docs/.swagger/api.yaml ./final/${APP_VERSION}/rest/api.yaml" # swagger
- "cp .docs/.swagger/swagger-ui.html ./final/${APP_VERSION}/rest/index.html" # swagger
- "cp .docs/.swagger/custom.css ./final/${APP_VERSION}/rest/custom.css" # swagger
- "cp -r ./site/* ./final/${APP_VERSION}" # mkdocs
- "cp .docker/dist.tar.gz ./final/${APP_VERSION}/dist.tar.gz" # dist
- "bash ./.gitlab/gen-badge.sh"
- eval $(ssh-agent -s)
- "mkdir -p /root/.ssh"
- echo "$CI_KEY_PRIVATE" > /root/.ssh/id_rsa && chmod 0600 /root/.ssh/id_rsa
- echo "$CI_KEY_PUBLIC" > /root/.ssh/id_rsa.pub
- echo "$CI_DOC_ID" > ~/.ssh/known_hosts
- tar czf ./final.tar.gz ./final
- "scp -oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedAlgorithms=+ssh-rsa final.tar.gz $CI_DOC_USER@$CI_DOC_IP:final.tar.gz"
- "scp -oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedAlgorithms=+ssh-rsa versions.json $CI_DOC_USER@$CI_DOC_IP:/system/user/ifs/infrastructures/public_html/dbrepo/versions.json"
- "scp -oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedAlgorithms=+ssh-rsa .docs/redirect.html $CI_DOC_USER@$CI_DOC_IP:/system/user/ifs/infrastructures/public_html/dbrepo/index.html"
- 'ssh -oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedAlgorithms=+ssh-rsa $CI_DOC_USER@$CI_DOC_IP "rm -rf /system/user/ifs/infrastructures/public_html/dbrepo/${APP_VERSION}; tar xzf ./final.tar.gz; rm -f ./final.tar.gz; cp -r ./final/* /system/user/ifs/infrastructures/public_html/dbrepo/${APP_VERSION}; rm -rf ./final"'
release-libs:
stage: release
image: docker.io/python:3.11-alpine
when: manual
only:
refs:
- /^release-.*/
variables:
PIPENV_PIPFILE: "./dbrepo-analyse-service/Pipfile"
before_script:
- "apk add sed bash"
- "pip install pipenv twine build"
- "pipenv install gunicorn && pipenv install --dev --system --deploy"
script:
- bash ./lib/python/package.sh
- bash ./lib/python/release.sh
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment