From f9c5adce5d39e565d544f094d1d2cb70e4319869 Mon Sep 17 00:00:00 2001
From: Martin Weise <martin.weise@tuwien.ac.at>
Date: Thu, 7 Mar 2024 13:17:18 +0000
Subject: [PATCH] Updated CI/CD

---
 .gitlab-ci.yml | 929 ++++++++++++++++++++++++-------------------------
 1 file changed, 458 insertions(+), 471 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 20684e4222..dd83cb7085 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -16,480 +16,467 @@ cache:
     - /root/.npm/
 
 stages:
-  - build
-  - test
-  - docs
+#  - build
+#  - test
+#  - docs
   - release
-  - scan
-
-build-metadata-service:
-  image: maven:3-openjdk-17
-  stage: build
-  script:
-    - "mvn -f ./dbrepo-metadata-service/pom.xml clean install -Dstyle.color=always -DskipTests"
-
-build-analyse-service:
-  image: python:3.9-slim
-  stage: build
-  variables:
-    PIPENV_PIPFILE: "./dbrepo-analyse-service/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
-  script:
-    - "mvn -f ./dbrepo-metadata-service/pom.xml clean install -Dstyle.color=always -DskipTests"
-    - "mvn -f ./dbrepo-data-service/pom.xml clean package -Dstyle.color=always -DskipTests"
-
-build-frontend:
-  image: node:14-alpine
-  stage: build
-  script:
-    - "yarn config set network-timeout 600000 -g"
-    - "yarn --cwd ./dbrepo-ui install --legacy-peer-deps"
-    - "yarn --cwd ./dbrepo-ui run build"
-
-build-search-service:
-  image: python:3.10-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:
-    - "cp .env.unix.example .env"
-    - "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_REGISTRY_PASSWORD" | docker login --username "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY_URL
-  script:
-    - apk add sed helm curl
-    - 'sed -i -e "s/^version:.*/version: \"${CHART_VERSION}\"/g" ./helm-charts/dbrepo/Chart.yaml'
-    - 'sed -i -e "s/^appVersion:.*/appVersion: \"${APP_VERSION}\"/g" ./helm-charts/dbrepo/Chart.yaml'
-    - find ./helm-charts -type f -exec sed -i -e "s/__CHARTVERSION__/${CHART_VERSION}/g" {} \;
-    - helm package ./helm-charts/dbrepo --destination ./build
-
-test-metadata-service:
-  image: maven:3-openjdk-17
-  stage: test
-  needs:
-    - build-metadata-service
-  script:
-    - "mvn -f ./dbrepo-metadata-service/pom.xml clean install -Dstyle.color=always -DskipTests"
-    - "mvn -f ./dbrepo-metadata-service/pom.xml clean test -Dstyle.color=always 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
-  script:
-    - "mvn -f ./dbrepo-metadata-service/pom.xml clean install -Dstyle.color=always -DskipTests"
-    - "mvn -f ./dbrepo-data-service/pom.xml clean test verify -Dstyle.color=always"
-    - "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: python:3.9-slim
-  stage: test
-  variables:
-    PIPENV_PIPFILE: "./dbrepo-analyse-service/Pipfile"
-  needs:
-    - 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-frontend:
-  image: node:14-alpine
-  stage: test
-  needs:
-    - build-frontend
-  script:
-    - "yarn --cwd ./dbrepo-ui install"
-    - "yarn --cwd ./dbrepo-ui run test:unit || true"
-    - "yarn --cwd ./dbrepo-ui run coverage || true"
-    - "cat ./dbrepo-ui/coverage/cobertura-coverage.xml | grep -o 'line-rate=\"[0-9.]*' | head -1 || true"
-  artifacts:
-    when: always
-    paths:
-      - ./dbrepo-ui/coverage/
-    expire_in: 1 days
-    reports:
-      coverage_report:
-        coverage_format: cobertura
-        path: ./dbrepo-ui/coverage/cobertura-coverage.xml
-  coverage: '/TOTAL.*?([0-9]{1,3})%/'
-
-scan-analyse-service:
-  image: bitnami/trivy:latest
-  stage: scan
-  only:
-    refs:
-      - master
-      - release-v1.4
-  allow_failure: true
-  script:
-    - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-analyse-service-report.json docker.io/dbrepo/analyse-service:latest
-    - trivy image --insecure --exit-code 0 docker.io/dbrepo/analyse-service:latest
-    - trivy image --insecure --exit-code 1 --severity CRITICAL docker.io/dbrepo/analyse-service:latest
-  cache:
-    paths:
-      - .trivycache/
-  artifacts:
-    when: always
-    expire_in: 1 days
-    reports:
-      container_scanning: ./.trivy/trivy-analyse-service-report.json
-
-scan-authentication-service:
-  image: bitnami/trivy:latest
-  stage: scan
-  only:
-    refs:
-      - master
-      - release-v1.4
-  allow_failure: true
-  script:
-    - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-authentication-service-report.json docker.io/dbrepo/authentication-service:latest
-    - trivy image --insecure --exit-code 0 docker.io/dbrepo/authentication-service:latest
-    - trivy image --insecure --exit-code 1 --severity CRITICAL docker.io/dbrepo/authentication-service:latest
-  cache:
-    paths:
-      - .trivycache/
-  artifacts:
-    when: always
-    expire_in: 1 days
-    reports:
-      container_scanning: ./.trivy/trivy-authentication-service-report.json
-
-scan-broker-service:
-  image: bitnami/trivy:latest
-  stage: scan
-  only:
-    refs:
-      - master
-      - release-v1.4
-  allow_failure: true
-  script:
-    - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-broker-service-report.json docker.io/dbrepo/broker-service:latest
-    - trivy image --insecure --exit-code 0 docker.io/dbrepo/broker-service:latest
-    - trivy image --insecure --exit-code 1 --severity CRITICAL docker.io/dbrepo/broker-service:latest
-  cache:
-    paths:
-      - .trivycache/
-  artifacts:
-    when: always
-    expire_in: 1 days
-    reports:
-      container_scanning: ./.trivy/trivy-broker-service-report.json
-
-scan-gateway-service:
-  image: bitnami/trivy:latest
-  stage: scan
-  only:
-    refs:
-      - master
-      - release-v1.4
-  allow_failure: true
-  script:
-    - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-gateway-service-report.json docker.io/nginx:1.25.0-alpine-slim
-    - trivy image --insecure --exit-code 0 docker.io/nginx:1.25.0-alpine-slim
-    - trivy image --insecure --exit-code 1 --severity CRITICAL docker.io/nginx:1.25.0-alpine-slim
-  cache:
-    paths:
-      - .trivycache/
-  artifacts:
-    when: always
-    expire_in: 1 days
-    reports:
-      container_scanning: ./.trivy/trivy-gateway-service-report.json
-
-scan-metadata-service:
-  image: bitnami/trivy:latest
-  stage: scan
-  only:
-    refs:
-      - master
-      - release-v1.4
-  allow_failure: true
-  script:
-    - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-metadata-service-report.json docker.io/dbrepo/metadata-service:latest
-    - trivy image --insecure --exit-code 0 docker.io/dbrepo/metadata-service:latest
-    - trivy image --insecure --exit-code 1 --severity CRITICAL docker.io/dbrepo/metadata-service:latest
-  cache:
-    paths:
-      - .trivycache/
-  artifacts:
-    when: always
-    expire_in: 1 days
-    reports:
-      container_scanning: ./.trivy/trivy-metadata-service-report.json
-
-scan-data-service:
-  image: bitnami/trivy:latest
-  stage: scan
-  only:
-    refs:
-      - master
-      - release-v1.4
-  allow_failure: true
-  script:
-    - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-data-service-report.json docker.io/dbrepo/data-service:latest
-    - trivy image --insecure --exit-code 0 docker.io/dbrepo/data-service:latest
-    - trivy image --insecure --exit-code 1 --severity CRITICAL docker.io/dbrepo/data-service:latest
-  cache:
-    paths:
-      - .trivycache/
-  artifacts:
-    when: always
-    expire_in: 1 days
-    reports:
-      container_scanning: ./.trivy/trivy-data-service-report.json
-
-scan-search-db:
-  image: bitnami/trivy:latest
-  stage: scan
-  only:
-    refs:
-      - master
-      - release-v1.4
-  allow_failure: true
-  script:
-    - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-search-db-report.json docker.io/dbrepo/search-db:latest
-    - trivy image --insecure --exit-code 0 docker.io/dbrepo/search-db:latest
-    - trivy image --insecure --exit-code 1 --severity CRITICAL docker.io/dbrepo/search-db:latest
-  cache:
-    paths:
-      - .trivycache/
-  artifacts:
-    when: always
-    expire_in: 1 days
-    reports:
-      container_scanning: ./.trivy/trivy-search-db-report.json
-
-scan-search-dashboard:
-  image: bitnami/trivy:latest
-  stage: scan
-  only:
-    refs:
-      - master
-      - release-v1.4
-  allow_failure: true
-  script:
-    - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-search-dashboard-report.json docker.io/opensearchproject/opensearch-dashboards:2.10.0
-    - trivy image --insecure --exit-code 0 docker.io/opensearchproject/opensearch-dashboards:2.10.0
-    - trivy image --insecure --exit-code 1 --severity CRITICAL docker.io/opensearchproject/opensearch-dashboards:2.10.0
-  cache:
-    paths:
-      - .trivycache/
-  artifacts:
-    when: always
-    expire_in: 1 days
-    reports:
-      container_scanning: ./.trivy/trivy-search-dashboard-report.json
-
-scan-search-db-init:
-  image: bitnami/trivy:latest
-  stage: scan
-  only:
-    refs:
-      - master
-      - release-v1.4
-  allow_failure: true
-  script:
-    - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-search-db-init-report.json docker.io/dbrepo/search-db-init:latest
-    - trivy image --insecure --exit-code 0 docker.io/dbrepo/search-db-init:latest
-    - trivy image --insecure --exit-code 1 --severity CRITICAL docker.io/dbrepo/search-db-init:latest
-  cache:
-    paths:
-      - .trivycache/
-  artifacts:
-    when: always
-    expire_in: 1 days
-    reports:
-      container_scanning: ./.trivy/trivy-search-db-init-report.json
-
-scan-data-db:
-  image: bitnami/trivy:latest
-  stage: scan
-  only:
-    refs:
-      - master
-      - release-v1.4
-  allow_failure: true
-  script:
-    - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-data-db-report.json docker.io/bitnami/mariadb:11.2.2-debian-11-r0
-    - trivy image --insecure --exit-code 0 docker.io/bitnami/mariadb:11.2.2-debian-11-r0
-    - trivy image --insecure --exit-code 1 --severity CRITICAL docker.io/bitnami/mariadb:11.2.2-debian-11-r0
-  cache:
-    paths:
-      - .trivycache/
-  artifacts:
-    when: always
-    expire_in: 1 days
-    reports:
-      container_scanning: ./.trivy/trivy-data-db-report.json
-
-scan-metadata-db:
-  image: bitnami/trivy:latest
-  stage: scan
-  only:
-    refs:
-      - master
-      - release-v1.4
-  allow_failure: true
-  script:
-    - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-metadata-db-report.json docker.io/dbrepo/metadata-db:latest
-    - trivy image --insecure --exit-code 0 docker.io/dbrepo/metadata-db:latest
-    - trivy image --insecure --exit-code 1 --severity CRITICAL docker.io/dbrepo/metadata-db:latest
-  cache:
-    paths:
-      - .trivycache/
-  artifacts:
-    when: always
-    expire_in: 1 days
-    reports:
-      container_scanning: ./.trivy/trivy-metadata-db-report.json
-
-scan-ui:
-  image: bitnami/trivy:latest
-  stage: scan
-  only:
-    refs:
-      - master
-      - release-v1.4
-  allow_failure: true
-  script:
-    - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-ui-report.json docker.io/dbrepo/ui:latest
-    - trivy image --insecure --exit-code 0 docker.io/dbrepo/ui:latest
-    - trivy image --insecure --exit-code 1 --severity CRITICAL docker.io/dbrepo/ui:latest
-  cache:
-    paths:
-      - .trivycache/
-  artifacts:
-    when: always
-    expire_in: 1 days
-    reports:
-      container_scanning: ./.trivy/trivy-ui-report.json
-
-scan-storage-service:
-  image: bitnami/trivy:latest
-  stage: scan
-  only:
-    refs:
-      - master
-      - release-v1.4
-  allow_failure: true
-  script:
-    - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-storage-service-report.json docker.io/chrislusf/seaweedfs:3.59
-    - trivy image --insecure --exit-code 0 docker.io/chrislusf/seaweedfs:3.59
-    - trivy image --insecure --exit-code 1 --severity CRITICAL docker.io/chrislusf/seaweedfs:3.59
-  cache:
-    paths:
-      - .trivycache/
-  artifacts:
-    when: always
-    expire_in: 1 days
-    reports:
-      container_scanning: ./.trivy/trivy-storage-service-report.json
-
-scan-storage-service-init:
-  image: bitnami/trivy:latest
-  stage: scan
-  only:
-    refs:
-      - master
-      - release-v1.4
-  allow_failure: true
-  script:
-    - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-storage-service-init-report.json docker.io/dbrepo/storage-service-init:latest
-    - trivy image --insecure --exit-code 0 docker.io/dbrepo/storage-service-init:latest
-    - trivy image --insecure --exit-code 1 --severity CRITICAL docker.io/dbrepo/storage-service-init:latest
-  cache:
-    paths:
-      - .trivycache/
-  artifacts:
-    when: always
-    expire_in: 1 days
-    reports:
-      container_scanning: ./.trivy/trivy-storage-service-init-report.json
-
-docs-registry:
-  stage: docs
-  image: docker.io/python:3.11-slim
-  only:
-    refs:
-      - /^release-.*/
-  script:
-    - pip install -r ./requirements.txt
-    - python3 .docs/docker/release.py
-
-docs-docs:
-  stage: docs
-  image: docker.io/python:3.11-slim
-  only:
-    refs:
-      - /^release-.*/
-  script:
-    - apt-get update && apt-get install -y git make sed wget
-    - make docs
-  cache:
-    paths:
-      - ./final
+#  - scan
+
+#build-metadata-service:
+#  image: maven:3-openjdk-17
+#  stage: build
+#  script:
+#    - "mvn -f ./dbrepo-metadata-service/pom.xml clean install -Dstyle.color=always -DskipTests"
+#
+#build-analyse-service:
+#  image: python:3.9-slim
+#  stage: build
+#  variables:
+#    PIPENV_PIPFILE: "./dbrepo-analyse-service/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
+#  script:
+#    - "mvn -f ./dbrepo-metadata-service/pom.xml clean install -Dstyle.color=always -DskipTests"
+#    - "mvn -f ./dbrepo-data-service/pom.xml clean package -Dstyle.color=always -DskipTests"
+#
+#build-frontend:
+#  image: node:14-alpine
+#  stage: build
+#  script:
+#    - "yarn config set network-timeout 600000 -g"
+#    - "yarn --cwd ./dbrepo-ui install --legacy-peer-deps"
+#    - "yarn --cwd ./dbrepo-ui run build"
+#
+#build-search-service:
+#  image: python:3.10-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:
+#    - "cp .env.unix.example .env"
+#    - "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_REGISTRY_PASSWORD" | docker login --username "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY_URL
+#  script:
+#    - apk add sed helm curl
+#    - 'sed -i -e "s/^version:.*/version: \"${CHART_VERSION}\"/g" ./helm-charts/dbrepo/Chart.yaml'
+#    - 'sed -i -e "s/^appVersion:.*/appVersion: \"${APP_VERSION}\"/g" ./helm-charts/dbrepo/Chart.yaml'
+#    - find ./helm-charts -type f -exec sed -i -e "s/__CHARTVERSION__/${CHART_VERSION}/g" {} \;
+#    - helm package ./helm-charts/dbrepo --destination ./build
+#
+#test-metadata-service:
+#  image: maven:3-openjdk-17
+#  stage: test
+#  needs:
+#    - build-metadata-service
+#  script:
+#    - "mvn -f ./dbrepo-metadata-service/pom.xml clean install -Dstyle.color=always -DskipTests"
+#    - "mvn -f ./dbrepo-metadata-service/pom.xml clean test -Dstyle.color=always 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
+#  script:
+#    - "mvn -f ./dbrepo-metadata-service/pom.xml clean install -Dstyle.color=always -DskipTests"
+#    - "mvn -f ./dbrepo-data-service/pom.xml clean test verify -Dstyle.color=always"
+#    - "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: python:3.9-slim
+#  stage: test
+#  variables:
+#    PIPENV_PIPFILE: "./dbrepo-analyse-service/Pipfile"
+#  needs:
+#    - 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-frontend:
+#  image: node:14-alpine
+#  stage: test
+#  needs:
+#    - build-frontend
+#  script:
+#    - "yarn --cwd ./dbrepo-ui install"
+#    - "yarn --cwd ./dbrepo-ui run test:unit || true"
+#    - "yarn --cwd ./dbrepo-ui run coverage || true"
+#    - "cat ./dbrepo-ui/coverage/cobertura-coverage.xml | grep -o 'line-rate=\"[0-9.]*' | head -1 || true"
+#  artifacts:
+#    when: always
+#    paths:
+#      - ./dbrepo-ui/coverage/
+#    expire_in: 1 days
+#    reports:
+#      coverage_report:
+#        coverage_format: cobertura
+#        path: ./dbrepo-ui/coverage/cobertura-coverage.xml
+#  coverage: '/TOTAL.*?([0-9]{1,3})%/'
+#
+#scan-analyse-service:
+#  image: bitnami/trivy:latest
+#  stage: scan
+#  only:
+#    refs:
+#      - master
+#      - release-v1.4
+#  allow_failure: true
+#  script:
+#    - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-analyse-service-report.json docker.io/dbrepo/analyse-service:latest
+#    - trivy image --insecure --exit-code 0 docker.io/dbrepo/analyse-service:latest
+#    - trivy image --insecure --exit-code 1 --severity CRITICAL docker.io/dbrepo/analyse-service:latest
+#  cache:
+#    paths:
+#      - .trivycache/
+#  artifacts:
+#    when: always
+#    expire_in: 1 days
+#    reports:
+#      container_scanning: ./.trivy/trivy-analyse-service-report.json
+#
+#scan-authentication-service:
+#  image: bitnami/trivy:latest
+#  stage: scan
+#  only:
+#    refs:
+#      - master
+#      - release-v1.4
+#  allow_failure: true
+#  script:
+#    - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-authentication-service-report.json docker.io/dbrepo/authentication-service:latest
+#    - trivy image --insecure --exit-code 0 docker.io/dbrepo/authentication-service:latest
+#    - trivy image --insecure --exit-code 1 --severity CRITICAL docker.io/dbrepo/authentication-service:latest
+#  cache:
+#    paths:
+#      - .trivycache/
+#  artifacts:
+#    when: always
+#    expire_in: 1 days
+#    reports:
+#      container_scanning: ./.trivy/trivy-authentication-service-report.json
+#
+#scan-broker-service:
+#  image: bitnami/trivy:latest
+#  stage: scan
+#  only:
+#    refs:
+#      - master
+#      - release-v1.4
+#  allow_failure: true
+#  script:
+#    - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-broker-service-report.json docker.io/dbrepo/broker-service:latest
+#    - trivy image --insecure --exit-code 0 docker.io/dbrepo/broker-service:latest
+#    - trivy image --insecure --exit-code 1 --severity CRITICAL docker.io/dbrepo/broker-service:latest
+#  cache:
+#    paths:
+#      - .trivycache/
+#  artifacts:
+#    when: always
+#    expire_in: 1 days
+#    reports:
+#      container_scanning: ./.trivy/trivy-broker-service-report.json
+#
+#scan-gateway-service:
+#  image: bitnami/trivy:latest
+#  stage: scan
+#  only:
+#    refs:
+#      - master
+#      - release-v1.4
+#  allow_failure: true
+#  script:
+#    - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-gateway-service-report.json docker.io/nginx:1.25.0-alpine-slim
+#    - trivy image --insecure --exit-code 0 docker.io/nginx:1.25.0-alpine-slim
+#    - trivy image --insecure --exit-code 1 --severity CRITICAL docker.io/nginx:1.25.0-alpine-slim
+#  cache:
+#    paths:
+#      - .trivycache/
+#  artifacts:
+#    when: always
+#    expire_in: 1 days
+#    reports:
+#      container_scanning: ./.trivy/trivy-gateway-service-report.json
+#
+#scan-metadata-service:
+#  image: bitnami/trivy:latest
+#  stage: scan
+#  only:
+#    refs:
+#      - master
+#      - release-v1.4
+#  allow_failure: true
+#  script:
+#    - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-metadata-service-report.json docker.io/dbrepo/metadata-service:latest
+#    - trivy image --insecure --exit-code 0 docker.io/dbrepo/metadata-service:latest
+#    - trivy image --insecure --exit-code 1 --severity CRITICAL docker.io/dbrepo/metadata-service:latest
+#  cache:
+#    paths:
+#      - .trivycache/
+#  artifacts:
+#    when: always
+#    expire_in: 1 days
+#    reports:
+#      container_scanning: ./.trivy/trivy-metadata-service-report.json
+#
+#scan-data-service:
+#  image: bitnami/trivy:latest
+#  stage: scan
+#  only:
+#    refs:
+#      - master
+#      - release-v1.4
+#  allow_failure: true
+#  script:
+#    - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-data-service-report.json docker.io/dbrepo/data-service:latest
+#    - trivy image --insecure --exit-code 0 docker.io/dbrepo/data-service:latest
+#    - trivy image --insecure --exit-code 1 --severity CRITICAL docker.io/dbrepo/data-service:latest
+#  cache:
+#    paths:
+#      - .trivycache/
+#  artifacts:
+#    when: always
+#    expire_in: 1 days
+#    reports:
+#      container_scanning: ./.trivy/trivy-data-service-report.json
+#
+#scan-search-db:
+#  image: bitnami/trivy:latest
+#  stage: scan
+#  only:
+#    refs:
+#      - master
+#      - release-v1.4
+#  allow_failure: true
+#  script:
+#    - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-search-db-report.json docker.io/dbrepo/search-db:latest
+#    - trivy image --insecure --exit-code 0 docker.io/dbrepo/search-db:latest
+#    - trivy image --insecure --exit-code 1 --severity CRITICAL docker.io/dbrepo/search-db:latest
+#  cache:
+#    paths:
+#      - .trivycache/
+#  artifacts:
+#    when: always
+#    expire_in: 1 days
+#    reports:
+#      container_scanning: ./.trivy/trivy-search-db-report.json
+#
+#scan-search-dashboard:
+#  image: bitnami/trivy:latest
+#  stage: scan
+#  only:
+#    refs:
+#      - master
+#      - release-v1.4
+#  allow_failure: true
+#  script:
+#    - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-search-dashboard-report.json docker.io/opensearchproject/opensearch-dashboards:2.10.0
+#    - trivy image --insecure --exit-code 0 docker.io/opensearchproject/opensearch-dashboards:2.10.0
+#    - trivy image --insecure --exit-code 1 --severity CRITICAL docker.io/opensearchproject/opensearch-dashboards:2.10.0
+#  cache:
+#    paths:
+#      - .trivycache/
+#  artifacts:
+#    when: always
+#    expire_in: 1 days
+#    reports:
+#      container_scanning: ./.trivy/trivy-search-dashboard-report.json
+#
+#scan-search-db-init:
+#  image: bitnami/trivy:latest
+#  stage: scan
+#  only:
+#    refs:
+#      - master
+#      - release-v1.4
+#  allow_failure: true
+#  script:
+#    - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-search-db-init-report.json docker.io/dbrepo/search-db-init:latest
+#    - trivy image --insecure --exit-code 0 docker.io/dbrepo/search-db-init:latest
+#    - trivy image --insecure --exit-code 1 --severity CRITICAL docker.io/dbrepo/search-db-init:latest
+#  cache:
+#    paths:
+#      - .trivycache/
+#  artifacts:
+#    when: always
+#    expire_in: 1 days
+#    reports:
+#      container_scanning: ./.trivy/trivy-search-db-init-report.json
+#
+#scan-data-db:
+#  image: bitnami/trivy:latest
+#  stage: scan
+#  only:
+#    refs:
+#      - master
+#      - release-v1.4
+#  allow_failure: true
+#  script:
+#    - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-data-db-report.json docker.io/bitnami/mariadb:11.2.2-debian-11-r0
+#    - trivy image --insecure --exit-code 0 docker.io/bitnami/mariadb:11.2.2-debian-11-r0
+#    - trivy image --insecure --exit-code 1 --severity CRITICAL docker.io/bitnami/mariadb:11.2.2-debian-11-r0
+#  cache:
+#    paths:
+#      - .trivycache/
+#  artifacts:
+#    when: always
+#    expire_in: 1 days
+#    reports:
+#      container_scanning: ./.trivy/trivy-data-db-report.json
+#
+#scan-metadata-db:
+#  image: bitnami/trivy:latest
+#  stage: scan
+#  only:
+#    refs:
+#      - master
+#      - release-v1.4
+#  allow_failure: true
+#  script:
+#    - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-metadata-db-report.json docker.io/dbrepo/metadata-db:latest
+#    - trivy image --insecure --exit-code 0 docker.io/dbrepo/metadata-db:latest
+#    - trivy image --insecure --exit-code 1 --severity CRITICAL docker.io/dbrepo/metadata-db:latest
+#  cache:
+#    paths:
+#      - .trivycache/
+#  artifacts:
+#    when: always
+#    expire_in: 1 days
+#    reports:
+#      container_scanning: ./.trivy/trivy-metadata-db-report.json
+#
+#scan-ui:
+#  image: bitnami/trivy:latest
+#  stage: scan
+#  only:
+#    refs:
+#      - master
+#      - release-v1.4
+#  allow_failure: true
+#  script:
+#    - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-ui-report.json docker.io/dbrepo/ui:latest
+#    - trivy image --insecure --exit-code 0 docker.io/dbrepo/ui:latest
+#    - trivy image --insecure --exit-code 1 --severity CRITICAL docker.io/dbrepo/ui:latest
+#  cache:
+#    paths:
+#      - .trivycache/
+#  artifacts:
+#    when: always
+#    expire_in: 1 days
+#    reports:
+#      container_scanning: ./.trivy/trivy-ui-report.json
+#
+#scan-storage-service:
+#  image: bitnami/trivy:latest
+#  stage: scan
+#  only:
+#    refs:
+#      - master
+#      - release-v1.4
+#  allow_failure: true
+#  script:
+#    - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-storage-service-report.json docker.io/chrislusf/seaweedfs:3.59
+#    - trivy image --insecure --exit-code 0 docker.io/chrislusf/seaweedfs:3.59
+#    - trivy image --insecure --exit-code 1 --severity CRITICAL docker.io/chrislusf/seaweedfs:3.59
+#  cache:
+#    paths:
+#      - .trivycache/
+#  artifacts:
+#    when: always
+#    expire_in: 1 days
+#    reports:
+#      container_scanning: ./.trivy/trivy-storage-service-report.json
+#
+#scan-storage-service-init:
+#  image: bitnami/trivy:latest
+#  stage: scan
+#  only:
+#    refs:
+#      - master
+#      - release-v1.4
+#  allow_failure: true
+#  script:
+#    - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-storage-service-init-report.json docker.io/dbrepo/storage-service-init:latest
+#    - trivy image --insecure --exit-code 0 docker.io/dbrepo/storage-service-init:latest
+#    - trivy image --insecure --exit-code 1 --severity CRITICAL docker.io/dbrepo/storage-service-init:latest
+#  cache:
+#    paths:
+#      - .trivycache/
+#  artifacts:
+#    when: always
+#    expire_in: 1 days
+#    reports:
+#      container_scanning: ./.trivy/trivy-storage-service-init-report.json
+#
+#docs-registry:
+#  stage: docs
+#  image: docker.io/python:3.11-slim
+#  only:
+#    refs:
+#      - /^release-.*/
+#  script:
+#    - pip install -r ./requirements.txt
+#    - python3 .docs/docker/release.py
 
 release-images:
   stage: release
   image: docker:24-dind
-  needs:
-    - test-metadata-service
-    - test-data-service
-    - test-analyse-service
-    - test-frontend
+#  needs:
+#    - test-metadata-service
+#    - test-data-service
+#    - test-analyse-service
+#    - test-frontend
   only:
     refs:
       - /^release-.*/
@@ -520,12 +507,12 @@ release-chart:
 release-docs:
   stage: release
   image: docker.io/finalgene/openssh:9.1
-  needs:
-    - docs-docs
   only:
     refs:
       - /^release-.*/
   script:
+    - apt-get update && apt-get install -y git make sed wget
+    - make docs
     - eval $(ssh-agent -s)
     - echo "$CI_KEY_PRIVATE" > /root/.ssh/id_rsa && chmod 0600 /root/.ssh/id_rsa
     - echo "$CI_KEY_PUBLIC" > /root/.ssh/id_rsa.pub
-- 
GitLab