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

WIP

parent 677576f2
No related branches found
No related tags found
No related merge requests found
...@@ -28,143 +28,143 @@ cache: ...@@ -28,143 +28,143 @@ cache:
- .m2/repository - .m2/repository
stages: stages:
# - lint - lint
# - build - build
- deploy - deploy
# - test - test
# - docs - docs
# - release - release
# - verify - verify
# - scan - scan
#lint-docker-compose: lint-docker-compose:
# image: docker.io/alpine:${ALPINE_VERSION} image: docker.io/alpine:${ALPINE_VERSION}
# stage: lint stage: lint
# variables: variables:
# VERSION: 3.3.0 VERSION: 3.3.0
# BINARY: yq_linux_amd64 BINARY: yq_linux_amd64
# before_script: before_script:
# - 'apk --no-cache add bash wget' - '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' - 'wget https://github.com/mikefarah/yq/releases/download/${VERSION}/${BINARY} -O /usr/bin/yq && chmod +x /usr/bin/yq'
# - 'ls -la .scripts' - 'ls -la .scripts'
# script: script:
# - "yq compare -P docker-compose.yml .docker/docker-compose.yml 'volumes.*'" - "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'" - "IGNORE_IMAGE=1 IGNORE_PORTS=1 bash .scripts/check-service.sh 'dbrepo-analyse-service'"
# - "bash .scripts/check-service.sh 'dbrepo-auth-db'" - "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-auth-service'"
# - "IGNORE_IMAGE=1 IGNORE_PORTS=1 bash .scripts/check-service.sh 'dbrepo-broker-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'" - "IGNORE_PORTS=1 bash .scripts/check-service.sh 'dbrepo-dashboard-service'"
# - "bash .scripts/check-service.sh 'dbrepo-data-db'" - "bash .scripts/check-service.sh 'dbrepo-data-db'"
# - "IGNORE_IMAGE=1 IGNORE_PORTS=1 bash .scripts/check-service.sh 'dbrepo-data-service'" - "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-gateway-service'"
# - "IGNORE_VOLUMES=1 bash .scripts/check-service.sh 'dbrepo-identity-service'" - "IGNORE_VOLUMES=1 bash .scripts/check-service.sh 'dbrepo-identity-service'"
# - "IGNORE_VOLUMES=1 bash .scripts/check-service.sh 'dbrepo-metadata-db'" - "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_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_VOLUMES=1 bash .scripts/check-service.sh 'dbrepo-metric-db'"
# - "IGNORE_IMAGE=1 bash .scripts/check-service.sh 'dbrepo-search-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 IGNORE_PORTS=1 bash .scripts/check-service.sh 'dbrepo-search-service'"
# - "IGNORE_IMAGE=1 bash .scripts/check-service.sh 'dbrepo-search-service-init'" - "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'"
# - "IGNORE_VOLUMES=1 bash .scripts/check-service.sh 'dbrepo-storage-service-init'" - "IGNORE_VOLUMES=1 bash .scripts/check-service.sh 'dbrepo-storage-service-init'"
# - "IGNORE_IMAGE=1 bash .scripts/check-service.sh 'dbrepo-ui'" - "IGNORE_IMAGE=1 bash .scripts/check-service.sh 'dbrepo-ui'"
# - "bash .scripts/check-service.sh 'dbrepo-upload-service'" - "bash .scripts/check-service.sh 'dbrepo-upload-service'"
#
#lint-helm-chart: lint-helm-chart:
# image: docker.io/alpine:3.20 image: docker.io/alpine:3.20
# stage: lint stage: lint
# before_script: before_script:
# - apk add helm - apk add helm
# script: script:
# - helm lint ./helm/dbrepo - helm lint ./helm/dbrepo
#
#build-metadata-service: build-metadata-service:
# image: maven:3-openjdk-${JAVA_VERSION} image: maven:3-openjdk-${JAVA_VERSION}
# stage: build stage: build
# script: script:
# - "mvn -f ./dbrepo-metadata-service/pom.xml clean install $MAVEN_OPTS -DskipTests" - "mvn -f ./dbrepo-metadata-service/pom.xml clean install $MAVEN_OPTS -DskipTests"
# # Compiled classes are needed for SonarQube in later stages # Compiled classes are needed for SonarQube in later stages
# artifacts: artifacts:
# when: always when: always
# paths: paths:
# - ./dbrepo-metadata-service/test/target/classes - ./dbrepo-metadata-service/test/target/classes
# - ./dbrepo-metadata-service/services/target/classes - ./dbrepo-metadata-service/services/target/classes
# - ./dbrepo-metadata-service/repositories/target/classes - ./dbrepo-metadata-service/repositories/target/classes
# - ./dbrepo-metadata-service/rest-service/target/classes - ./dbrepo-metadata-service/rest-service/target/classes
# - ./dbrepo-metadata-service/api/target/classes - ./dbrepo-metadata-service/api/target/classes
# - ./dbrepo-metadata-service/oai/target/classes - ./dbrepo-metadata-service/oai/target/classes
# - ./dbrepo-metadata-service/entities/target/classes - ./dbrepo-metadata-service/entities/target/classes
# expire_in: 1 days expire_in: 1 days
#
#build-analyse-service: build-analyse-service:
# image: docker.io/python:${PYTHON_VERSION}-alpine${ALPINE_VERSION} image: docker.io/python:${PYTHON_VERSION}-alpine${ALPINE_VERSION}
# stage: build stage: build
# variables: variables:
# PIPENV_PIPFILE: "./dbrepo-analyse-service/Pipfile" PIPENV_PIPFILE: "./dbrepo-analyse-service/Pipfile"
# script: script:
# - "pip install pipenv" - "pip install pipenv"
# - "pipenv install gunicorn && pipenv install --dev --system --deploy" - "pipenv install gunicorn && pipenv install --dev --system --deploy"
#
#build-lib: build-lib:
# image: docker.io/python:${PYTHON_VERSION}-alpine${ALPINE_VERSION} image: docker.io/python:${PYTHON_VERSION}-alpine${ALPINE_VERSION}
# stage: build stage: build
# variables: variables:
# PIPENV_PIPFILE: "./lib/python/Pipfile" PIPENV_PIPFILE: "./lib/python/Pipfile"
# script: script:
# - "pip install pipenv" - "pip install pipenv"
# - "pipenv install gunicorn && pipenv install --dev --system --deploy" - "pipenv install gunicorn && pipenv install --dev --system --deploy"
#
#build-data-service: build-data-service:
# image: maven:3-openjdk-${JAVA_VERSION} image: maven:3-openjdk-${JAVA_VERSION}
# stage: build stage: build
# needs: needs:
# - build-metadata-service - build-metadata-service
# dependencies: dependencies:
# - build-metadata-service - build-metadata-service
# script: script:
# - "mvn -f ./dbrepo-metadata-service/pom.xml clean install $MAVEN_OPTS -DskipTests" - "mvn -f ./dbrepo-metadata-service/pom.xml clean install $MAVEN_OPTS -DskipTests"
# - "mvn -f ./dbrepo-data-service/pom.xml clean package $MAVEN_OPTS -DskipTests" - "mvn -f ./dbrepo-data-service/pom.xml clean package $MAVEN_OPTS -DskipTests"
# # Compiled classes are needed for SonarQube in later stages # Compiled classes are needed for SonarQube in later stages
# artifacts: artifacts:
# when: always when: always
# paths: paths:
# - ./dbrepo-data-service/services/target/classes - ./dbrepo-data-service/services/target/classes
# - ./dbrepo-data-service/rest-service/target/classes - ./dbrepo-data-service/rest-service/target/classes
# - ./dbrepo-data-service/querystore/target/classes - ./dbrepo-data-service/querystore/target/classes
# expire_in: 1 days expire_in: 1 days
#
#build-ui: build-ui:
# image: oven/bun:${BUN_VERSION}-alpine image: oven/bun:${BUN_VERSION}-alpine
# stage: build stage: build
# script: script:
# - "cd ./dbrepo-ui && bun install && bun run build" - "cd ./dbrepo-ui && bun install && bun run build"
#
#build-search-service: build-search-service:
# image: docker.io/python:${PYTHON_VERSION}-alpine${ALPINE_VERSION} image: docker.io/python:${PYTHON_VERSION}-alpine${ALPINE_VERSION}
# stage: build stage: build
# script: script:
# - "pip install pipenv" - "pip install pipenv"
# - "cd dbrepo-search-service && pipenv install --system --deploy" - "cd dbrepo-search-service && pipenv install --system --deploy"
#
#build-docker: build-docker:
# image: docker.io/docker:24-dind image: docker.io/docker:24-dind
# stage: build stage: build
# variables: variables:
# DOCKER_BUILDKIT: 0 DOCKER_BUILDKIT: 0
# before_script: before_script:
# - "apk add --no-cache make" - "apk add --no-cache make"
# - echo "$CI_REGISTRY_PASSWORD" | docker login --username "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY_URL - echo "$CI_REGISTRY_PASSWORD" | docker login --username "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY_URL
# script: script:
# - "make build-images" - "make build-images"
#
#build-helm: build-helm:
# image: docker.io/docker:24-dind image: docker.io/docker:24-dind
# stage: build stage: build
# before_script: before_script:
# - echo "$CI_GPG_KEYRING" | base64 -d > ./secring.gpg - echo "$CI_GPG_KEYRING" | base64 -d > ./secring.gpg
# - echo "$CI_REGISTRY_PASSWORD" | docker login --username "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY_URL - echo "$CI_REGISTRY_PASSWORD" | docker login --username "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY_URL
# script: script:
# - apk add sed helm curl - apk add sed helm curl
# - helm package ./helm/dbrepo --destination ./build - helm package ./helm/dbrepo --destination ./build
deploy-staging: deploy-staging:
image: docker.io/alpine:${ALPINE_VERSION} image: docker.io/alpine:${ALPINE_VERSION}
...@@ -189,308 +189,308 @@ deploy-staging: ...@@ -189,308 +189,308 @@ deploy-staging:
refs: refs:
- dev - dev
- master - master
# when: manual when: manual
test-metadata-service:
image: maven:3-openjdk-${JAVA_VERSION}
stage: test
needs:
- build-metadata-service
dependencies:
- build-metadata-service
script:
- "mvn -f ./dbrepo-metadata-service/pom.xml clean test verify $MAVEN_OPTS"
- "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-${JAVA_VERSION}
stage: test
needs:
- build-data-service
dependencies:
- build-data-service
script:
- "mvn -f ./dbrepo-metadata-service/pom.xml clean install $MAVEN_OPTS"
- "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-upload-service:
image: maven:3-openjdk-${JAVA_VERSION}
stage: test
script:
- "mvn -f ./dbrepo-metadata-service/pom.xml clean install $MAVEN_OPTS -DskipTests"
- "mvn -f ./dbrepo-upload-service/pom.xml clean test $MAVEN_OPTS"
test-analyse-service:
image: docker.io/python:${PYTHON_VERSION}-alpine${ALPINE_VERSION}
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:${PYTHON_VERSION}-alpine${ALPINE_VERSION}
stage: test
variables:
PIPENV_PIPFILE: "./dbrepo-search-service/Pipfile"
needs:
- build-search-service
dependencies:
- build-search-service
before_script:
- "cp -r ./dbrepo-search-service/init/clients ./dbrepo-search-service/clients"
- "cp -r ./dbrepo-search-service/init/omlib ./dbrepo-search-service/omlib"
script:
- "pip install pipenv"
- "pipenv install gunicorn && pipenv install --dev --system --deploy"
- cd ./dbrepo-search-service/ && coverage run -m pytest test/test_app.py test/test_jwt.py test/test_opensearch_client.py test/test_keycloak_client.py --junitxml=report.xml && coverage html && coverage report > ./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-search-service-init:
image: docker.io/python:${PYTHON_VERSION}-alpine${ALPINE_VERSION}
stage: test
variables:
PIPENV_PIPFILE: "./dbrepo-search-service/init/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/init/ && coverage run -m pytest test/test_app.py --junitxml=report.xml && coverage html && coverage report > ./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:${PYTHON_VERSION}-alpine${ALPINE_VERSION}
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
before_script:
- "apk add --no-cache bash apache2-utils"
- "docker compose build dbrepo-ui"
- "docker run --name dbrepo-ui -e NODE_OPTIONS='--max_old_space_size=256' -p 3000:3000 -d dbrepo-ui:latest"
script:
- "sleep 30"
- "ENDPOINT=http://localhost:3000 bash ./dbrepo-ui/test/test_heap.sh"
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 --no-cache make bash"
script:
- "make release-images"
release-helm:
stage: release
image: docker:24-dind
only:
refs:
- /^release-.*/
when: manual
needs:
- build-helm
dependencies:
- build-helm
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:${PYTHON_VERSION}-alpine${ALPINE_VERSION}
only:
refs:
- /^release-.*/
before_script:
- "apk add --no-cache alpine-sdk bash sed wget openssh jq curl"
- "pip install pipenv"
- "pipenv install --dev --system --deploy"
- "mkdir -p ./final/${DOC_VERSION}/rest"
- "mkdir -p ./final/${APP_VERSION}"
script:
- "make gen-lib-doc gen-docs-doc package-config"
- "cp -r ./lib/python/docs/build/html ./final/${DOC_VERSION}/python" # sphinx
- "cp .docs/.swagger/api.yaml ./final/${DOC_VERSION}/rest/api.yaml" # swagger
- "cp .docs/.swagger/swagger-ui.html ./final/${DOC_VERSION}/rest/index.html" # swagger
- "cp .docs/.swagger/custom.css ./final/${DOC_VERSION}/rest/custom.css" # swagger
- "cp -r ./site/* ./final/${DOC_VERSION}" # mkdocs
- "cp .docker/dist.tar.gz ./final/${APP_VERSION}/dist.tar.gz" # dist
- "cp .docs/index.html.tpl ./final/${APP_VERSION}/index.html" # redirect patch docs
- sed -i "s/\${DOC_VERSION}/${DOC_VERSION}/g" index.html
- "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/index.html.tpl $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/${DOC_VERSION}; tar xzf ./final.tar.gz; rm -f ./final.tar.gz; cp -r ./final/* /system/user/ifs/infrastructures/public_html/dbrepo; rm -rf ./final"'
#test-metadata-service: release-libs:
# image: maven:3-openjdk-${JAVA_VERSION} stage: release
# stage: test image: docker.io/python:${PYTHON_VERSION}-alpine${ALPINE_VERSION}
# needs: when: manual
# - build-metadata-service only:
# dependencies: refs:
# - build-metadata-service - /^release-.*/
# script: variables:
# - "mvn -f ./dbrepo-metadata-service/pom.xml clean test verify $MAVEN_OPTS" PIPENV_PIPFILE: "./dbrepo-analyse-service/Pipfile"
# - "cat ./dbrepo-metadata-service/report/target/site/jacoco-aggregate/index.html | grep -o 'Total[^%]*%' | sed 's/<.*>/ /; s/Total/Jacoco Coverage Total:/'" before_script:
# artifacts: - "apk add sed bash"
# when: always - "pip install pipenv twine build"
# paths: - "pipenv install gunicorn && pipenv install --dev --system --deploy"
# - ./dbrepo-metadata-service/report/target/site/jacoco-aggregate/ script:
# - ./dbrepo-metadata-service/rest-service/target/surefire-reports/ - bash ./lib/python/package.sh
# expire_in: 1 days - bash ./lib/python/release.sh
# reports:
# junit: ./dbrepo-metadata-service/rest-service/target/surefire-reports/TEST-*.xml verify-install-script:
# coverage: '/Total.*?([0-9]{1,3})%/' image: docker.io/docker:24-dind
# stage: verify
#test-data-service: only:
# image: maven:3-openjdk-${JAVA_VERSION} refs:
# stage: test - /^release-.*/
# needs: variables:
# - build-data-service SKIP_CHECKS: 1
# dependencies: before_script:
# - build-data-service - "apk add bash curl"
# script: script:
# - "mvn -f ./dbrepo-metadata-service/pom.xml clean install $MAVEN_OPTS" - "curl -sSL https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/release-${DOC_VERSION}/install.sh | bash | grep 'Success!'"
# - "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:/'" verify-dist:
# artifacts: image: docker.io/alpine:${ALPINE_VERSION}
# when: always stage: verify
# paths: only:
# - ./dbrepo-data-service/report/target/site/jacoco-aggregate/ refs:
# - ./dbrepo-data-service/rest-service/target/surefire-reports/ - /^release-.*/
# expire_in: 1 days before_script:
# reports: - "apk add curl"
# junit: ./dbrepo-data-service/rest-service/target/surefire-reports/TEST-*.xml script:
# coverage: '/Total.*?([0-9]{1,3})%/' - "curl -v --output /dev/null --fail https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/${APP_VERSION}/dist.tar.gz"
#
#test-upload-service: scan-sonarqube:
# image: maven:3-openjdk-${JAVA_VERSION} image: sonarsource/sonar-scanner-cli:10.0
# stage: test stage: scan
# script: only:
# - "mvn -f ./dbrepo-metadata-service/pom.xml clean install $MAVEN_OPTS -DskipTests" refs:
# - "mvn -f ./dbrepo-upload-service/pom.xml clean test $MAVEN_OPTS" - master
# needs:
#test-analyse-service: - build-data-service
# image: docker.io/python:${PYTHON_VERSION}-alpine${ALPINE_VERSION} - build-metadata-service
# stage: test dependencies:
# variables: - build-data-service
# PIPENV_PIPFILE: "./dbrepo-analyse-service/Pipfile" - build-metadata-service
# needs: script:
# - build-analyse-service - 'sonar-scanner -Dsonar.token="${CI_SONAR_TOKEN}"'
# dependencies: allow_failure: true
# - build-analyse-service cache:
# script: policy: pull
# - "pip install pipenv" key: "${CI_COMMIT_SHORT_SHA}"
# - "pipenv install gunicorn && pipenv install --dev --system --deploy" paths:
# - 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 - sonar-scanner/
# - "cat ./coverage.txt | grep -o 'TOTAL[^%]*%'" \ No newline at end of file
# 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:${PYTHON_VERSION}-alpine${ALPINE_VERSION}
# stage: test
# variables:
# PIPENV_PIPFILE: "./dbrepo-search-service/Pipfile"
# needs:
# - build-search-service
# dependencies:
# - build-search-service
# before_script:
# - "cp -r ./dbrepo-search-service/init/clients ./dbrepo-search-service/clients"
# - "cp -r ./dbrepo-search-service/init/omlib ./dbrepo-search-service/omlib"
# script:
# - "pip install pipenv"
# - "pipenv install gunicorn && pipenv install --dev --system --deploy"
# - cd ./dbrepo-search-service/ && coverage run -m pytest test/test_app.py test/test_jwt.py test/test_opensearch_client.py test/test_keycloak_client.py --junitxml=report.xml && coverage html && coverage report > ./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-search-service-init:
# image: docker.io/python:${PYTHON_VERSION}-alpine${ALPINE_VERSION}
# stage: test
# variables:
# PIPENV_PIPFILE: "./dbrepo-search-service/init/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/init/ && coverage run -m pytest test/test_app.py --junitxml=report.xml && coverage html && coverage report > ./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:${PYTHON_VERSION}-alpine${ALPINE_VERSION}
# 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
# before_script:
# - "apk add --no-cache bash apache2-utils"
# - "docker compose build dbrepo-ui"
# - "docker run --name dbrepo-ui -e NODE_OPTIONS='--max_old_space_size=256' -p 3000:3000 -d dbrepo-ui:latest"
# script:
# - "sleep 30"
# - "ENDPOINT=http://localhost:3000 bash ./dbrepo-ui/test/test_heap.sh"
#
#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 --no-cache make bash"
# script:
# - "make release-images"
#
#release-helm:
# stage: release
# image: docker:24-dind
# only:
# refs:
# - /^release-.*/
# when: manual
# needs:
# - build-helm
# dependencies:
# - build-helm
# 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:${PYTHON_VERSION}-alpine${ALPINE_VERSION}
# only:
# refs:
# - /^release-.*/
# before_script:
# - "apk add --no-cache alpine-sdk bash sed wget openssh jq curl"
# - "pip install pipenv"
# - "pipenv install --dev --system --deploy"
# - "mkdir -p ./final/${DOC_VERSION}/rest"
# - "mkdir -p ./final/${APP_VERSION}"
# script:
# - "make gen-lib-doc gen-docs-doc package-config"
# - "cp -r ./lib/python/docs/build/html ./final/${DOC_VERSION}/python" # sphinx
# - "cp .docs/.swagger/api.yaml ./final/${DOC_VERSION}/rest/api.yaml" # swagger
# - "cp .docs/.swagger/swagger-ui.html ./final/${DOC_VERSION}/rest/index.html" # swagger
# - "cp .docs/.swagger/custom.css ./final/${DOC_VERSION}/rest/custom.css" # swagger
# - "cp -r ./site/* ./final/${DOC_VERSION}" # mkdocs
# - "cp .docker/dist.tar.gz ./final/${APP_VERSION}/dist.tar.gz" # dist
# - "cp .docs/index.html.tpl ./final/${APP_VERSION}/index.html" # redirect patch docs
# - sed -i "s/\${DOC_VERSION}/${DOC_VERSION}/g" index.html
# - "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/index.html.tpl $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/${DOC_VERSION}; tar xzf ./final.tar.gz; rm -f ./final.tar.gz; cp -r ./final/* /system/user/ifs/infrastructures/public_html/dbrepo; rm -rf ./final"'
#
#release-libs:
# stage: release
# image: docker.io/python:${PYTHON_VERSION}-alpine${ALPINE_VERSION}
# 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
#
#verify-install-script:
# image: docker.io/docker:24-dind
# stage: verify
# only:
# refs:
# - /^release-.*/
# variables:
# SKIP_CHECKS: 1
# before_script:
# - "apk add bash curl"
# script:
# - "curl -sSL https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/release-${DOC_VERSION}/install.sh | bash | grep 'Success!'"
#
#verify-dist:
# image: docker.io/alpine:${ALPINE_VERSION}
# stage: verify
# only:
# refs:
# - /^release-.*/
# before_script:
# - "apk add curl"
# script:
# - "curl -v --output /dev/null --fail https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/${APP_VERSION}/dist.tar.gz"
#
#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/
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment