diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 59693ba637a69d27d23f29b23d04d37c08b99d9d..4319aae30d6abf7ad0af626ae07fc2303f2a10cf 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,13 +7,14 @@ variables: GIT_DEPTH: 0 # Tells git to fetch all the branches of the project, required by the analysis task CLI_VERSION: latest DOCKER_BUILDKIT: 1 # With BuildKit, you don't need to pull the remote images before building since it caches each build layer in your image registry. Then, when you build the image, each layer is downloaded as needed during the build. + PACKAGE_REGISTRY_URL: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/" image: node:14 #----------------------------------------------------------------------------------------------------------------------- stages: # map-library (Build, Test, Docker) als auch create-map-elements werden aktuell nicht berücksichtigt! - - install-dependencies # jobs: install-dependencies-main / install-dependencies-web-cache - - build # jobs: build-main / build-map-app / build-table-app / build-web-comp / build-web-cache + - build # job: build-main + - build-sub # jobs: build-map-app / build-table-app / build-web-comp / build-web-cache - test # jobs: test-main-app / test-map-app / test-table-app / test-web-cache - sonarqube # noch nicht fertig getestet jobs: sonarqube-main / sonarqube-web-cache - dockerimage # jobs: docker-build-main / docker-build-map-app / docker-build-table-app / docker-build-web-comp / docker-build-web-cache @@ -21,52 +22,81 @@ stages: # map-library (Build, Test, Docker) als auch create-map-elements werden ######################################################################################################################## # Non-Parallel Deploy-Stages ######################################################################################################################## + - upload # only tags + - Deploy-Main - Deploy-Map-App - Deploy-Table-App - Deploy-Web-Comp - Deploy-Web-Cache + - release # only tags + + ######################################################################################################################## + # Hidden necessary Stages! + ######################################################################################################################## + # cache (two jobs) + # install_dependencies (two jobs) + + #----------------------------------------------------------------------------------------------------------------------- -install-dependencies-main: +.cache_main: #----------------------------------------------------------------------------------------------------------------------- - stage: install-dependencies + stage: cache cache: - key: $CI_COMMIT_REF_SLUG-$CI_PROJECT_DIR + key: + files: + - package-lock.json + prefix: $CI_COMMIT_REF_SLUG-$CI_PROJECT_DIR paths: - node_modules/ - script: - - npm ci - # only: - # changes: - # - package-lock.json + #----------------------------------------------------------------------------------------------------------------------- -install-dependencies-web-cache: +.cache_web_cache: #----------------------------------------------------------------------------------------------------------------------- - stage: install-dependencies + stage: cache cache: - key: $CI_COMMIT_REF_SLUG-$CI_PROJECT_DIR-web-cache + key: + files: + - /projects/grid-failure-information-web-cache/package-lock.json + prefix: $CI_COMMIT_REF_SLUG-$CI_PROJECT_DIR-web-cache paths: - ./projects/grid-failure-information-web-cache/node_modules/ - script: + + +#----------------------------------------------------------------------------------------------------------------------- +.install_dependencies_main: + #----------------------------------------------------------------------------------------------------------------------- + stage: install_dependencies + extends: .cache_main + before_script: + - test -d "node_modules" && echo "Found/Exists" || echo "Does not exist" + - | + if [[ ! -d node_modules ]]; then + npm ci --cache .npm --prefer-offline + fi + + +#----------------------------------------------------------------------------------------------------------------------- +.install_dependencies_web_cache: + #----------------------------------------------------------------------------------------------------------------------- + stage: install_dependencies + extends: .cache_web_cache + before_script: - cd ./projects/grid-failure-information-web-cache - - npm ci - # only: - # changes: - # - /projects/grid-failure-information-web-cache/package-lock.json + - test -d "node_modules" && echo "Found/Exists" || echo "Does not exist" + - | + if [[ ! -d node_modules ]]; then + npm ci --cache .npm --prefer-offline + fi + #----------------------------------------------------------------------------------------------------------------------- build-main: #----------------------------------------------------------------------------------------------------------------------- stage: build - dependencies: - - install-dependencies-main - cache: - key: $CI_COMMIT_REF_SLUG-$CI_PROJECT_DIR - paths: - - node_modules/ - policy: pull + extends: .install_dependencies_main script: - npm run sy-pre-start - npm run build-main-app @@ -75,150 +105,135 @@ build-main: artifacts: paths: - dist/ + rules: + - changes: + - projects/grid-failure-information-app/**/* + - if: $CI_COMMIT_TAG #----------------------------------------------------------------------------------------------------------------------- build-map-app: #----------------------------------------------------------------------------------------------------------------------- - stage: build -# dependencies: -# - build-map-library - cache: - key: $CI_COMMIT_REF_SLUG-$CI_PROJECT_DIR - paths: - - node_modules/ - policy: pull + stage: build-sub + extends: .cache_main script: - npm run build-map-app - find -maxdepth 2 -ls artifacts: paths: - dist/ + rules: + - changes: + - projects/grid-failure-information-map-app/**/* + - if: $CI_COMMIT_TAG #----------------------------------------------------------------------------------------------------------------------- build-table-app: #----------------------------------------------------------------------------------------------------------------------- - stage: build -# dependencies: -# - build-map-app - cache: - key: $CI_COMMIT_REF_SLUG-$CI_PROJECT_DIR - paths: - - node_modules/ - policy: pull + stage: build-sub + extends: .cache_main script: - npm run build-table-app - find -maxdepth 2 -ls artifacts: paths: - dist/ + rules: + - changes: + - projects/grid-failure-information-table-app/**/* + - if: $CI_COMMIT_TAG #----------------------------------------------------------------------------------------------------------------------- build-web-comp: #----------------------------------------------------------------------------------------------------------------------- - stage: build -# dependencies: -# - build-table-app - cache: - key: $CI_COMMIT_REF_SLUG-$CI_PROJECT_DIR - paths: - - node_modules/ - policy: pull + stage: build-sub + extends: .cache_main script: - npm run build-comp artifacts: paths: - dist/ + rules: + - changes: + - projects/grid-failure-information-web-comp/**/* + - if: $CI_COMMIT_TAG #----------------------------------------------------------------------------------------------------------------------- build-web-cache: #----------------------------------------------------------------------------------------------------------------------- stage: build - dependencies: - - install-dependencies-web-cache -# needs: ["install-dependencies-web-cache"] - cache: - key: $CI_COMMIT_REF_SLUG-$CI_PROJECT_DIR-web-cache - paths: - - ./projects/grid-failure-information-web-cache/node_modules/ - policy: pull + extends: .install_dependencies_web_cache script: - - cd ./projects/grid-failure-information-web-cache - npm run build - find -maxdepth 2 -ls artifacts: paths: - ./projects/grid-failure-information-web-cache/dist/ + rules: + - changes: + - projects/grid-failure-information-web-cache/**/* + if: $CI_PROJECT_NAME == "gridfailureinformation.frontend.web-cache" + - if: $CI_COMMIT_TAG + + #----------------------------------------------------------------------------------------------------------------------- test-main-app: #----------------------------------------------------------------------------------------------------------------------- stage: test + extends: .cache_main image: trion/ng-cli-karma:${CLI_VERSION} allow_failure: false -# dependencies: -# - install_dependencies - cache: - key: $CI_COMMIT_REF_SLUG-$CI_PROJECT_DIR - paths: - - node_modules/ - policy: pull script: - npm run test-single-run --code-coverage --progress false --watch false artifacts: paths: - coverage/ + rules: + - changes: + - projects/grid-failure-information-app/**/* + - if: $CI_COMMIT_TAG #----------------------------------------------------------------------------------------------------------------------- test-map-app: #----------------------------------------------------------------------------------------------------------------------- stage: test + extends: .cache_main image: trion/ng-cli-karma:${CLI_VERSION} allow_failure: false -# dependencies: -# - install_dependencies - cache: - key: $CI_COMMIT_REF_SLUG-$CI_PROJECT_DIR - paths: - - node_modules/ - policy: pull script: - npm run test-map-app-single-run --code-coverage --progress false --watch false artifacts: paths: - coverage/ + rules: + - changes: + - projects/grid-failure-information-map-app/**/* + - if: $CI_COMMIT_TAG #----------------------------------------------------------------------------------------------------------------------- test-table-app: #----------------------------------------------------------------------------------------------------------------------- stage: test + extends: .cache_main image: trion/ng-cli-karma:${CLI_VERSION} allow_failure: false -# dependencies: -# - install_dependencies - cache: - key: $CI_COMMIT_REF_SLUG-$CI_PROJECT_DIR - paths: - - node_modules/ - policy: pull script: - npm run test-table-app-single-run --code-coverage --progress false --watch false artifacts: paths: - coverage/ + rules: + - changes: + - projects/grid-failure-information-table-app/**/* + - if: $CI_COMMIT_TAG #----------------------------------------------------------------------------------------------------------------------- test-web-cache: #----------------------------------------------------------------------------------------------------------------------- stage: test + extends: .cache_web_cache image: trion/ng-cli-karma:${CLI_VERSION} allow_failure: false -# dependencies: -# - install_dependencies-web-cache - cache: - key: $CI_COMMIT_REF_SLUG-$CI_PROJECT_DIR-web-cache - paths: - - ./projects/grid-failure-information-web-cache/node_modules/ - policy: pull script: - cd ./projects/grid-failure-information-web-cache - npm run test:cov --code-coverage --progress false --watch false @@ -227,8 +242,10 @@ test-web-cache: - ./projects/grid-failure-information-web-cache/coverage/ rules: - changes: - - stoerungsauskunftInterface/**/* - if: $CI_PROJECT_NAME == "gridFailureInformation.frontend.web-cache" + - projects/grid-failure-information-web-cache/**/* + if: $CI_PROJECT_NAME == "gridfailureinformation.frontend.web-cache" + - if: $CI_COMMIT_TAG + #----------------------------------------------------------------------------------------------------------------------- sonarqube-main: @@ -247,6 +264,16 @@ sonarqube-main: allow_failure: true dependencies: - test-main-app + rules: + - changes: + - projects/grid-failure-information-app/**/* + - changes: + - projects/grid-failure-information-map-app/**/* + - changes: + - projects/grid-failure-information-table-app/**/* + - changes: + - projects/grid-failure-information-web-comp/**/* + - if: $CI_COMMIT_TAG #----------------------------------------------------------------------------------------------------------------------- sonarqube-web-cache: @@ -266,6 +293,12 @@ sonarqube-web-cache: allow_failure: true dependencies: - test-web-cache + rules: + - changes: + - projects/grid-failure-information-web-cache/**/* + if: $CI_PROJECT_NAME == "gridfailureinformation.frontend.web-cache" + - if: $CI_COMMIT_TAG + #----------------------------------------------------------------------------------------------------------------------- # Dockerimage @@ -292,6 +325,8 @@ sonarqube-web-cache: - REGISTRY_IMAGE_BASE="$CI_REGISTRY_IMAGE/$CI_SOURCE_BRANCH/$IMG_NAME" - FINAL_REGISTRY_IMAGE="$CI_REGISTRY_IMAGE/$CI_SOURCE_BRANCH/$IMG_NAME:${tag}" - echo "FINAL_REGISTRY_IMAGE=$FINAL_REGISTRY_IMAGE" >> dockerimage.env + - echo "REGISTRY_IMAGE_BASE=$REGISTRY_IMAGE_BASE" >> dockerimage.env + - echo "IMAGE_TAG=$tag" >> dockerimage.env - echo current FINAL_REGISTRY_IMAGE ${FINAL_REGISTRY_IMAGE} - docker build --pull -f $DOCKER_FILE -t "$FINAL_REGISTRY_IMAGE" -t "$REGISTRY_IMAGE_BASE" --cache-from "$REGISTRY_IMAGE_BASE" --build-arg BUILDKIT_INLINE_CACHE=1 . - docker push "$REGISTRY_IMAGE_BASE" --all-tags @@ -311,9 +346,12 @@ docker-build-main: needs: - job: build-main rules: - - exists: + - changes: + - projects/grid-failure-information-app/**/* + exists: - projects/grid-failure-information-app/Dockerfile_Kubernetes_Main + #----------------------------------------------------------------------------------------------------------------------- docker-build-map-app: #----------------------------------------------------------------------------------------------------------------------- @@ -326,9 +364,12 @@ docker-build-map-app: needs: - job: build-map-app rules: - - exists: + - changes: + - projects/grid-failure-information-map-app/**/* + exists: - projects/grid-failure-information-map-app/Dockerfile_Kubernetes_MapApp + #----------------------------------------------------------------------------------------------------------------------- docker-build-table-app: #----------------------------------------------------------------------------------------------------------------------- @@ -341,9 +382,12 @@ docker-build-table-app: needs: - job: build-table-app rules: - - exists: + - changes: + - projects/grid-failure-information-table-app/**/* + exists: - projects/grid-failure-information-table-app/Dockerfile_Kubernetes_TableApp + #----------------------------------------------------------------------------------------------------------------------- docker-build-web-cache: #----------------------------------------------------------------------------------------------------------------------- @@ -356,8 +400,13 @@ docker-build-web-cache: needs: - job: build-web-cache rules: - - exists: + - changes: + - projects/grid-failure-information-web-cache/**/* + if: $CI_PROJECT_NAME == "gridfailureinformation.frontend.web-cache" + exists: - projects/grid-failure-information-web-cache/Dockerfile_Kubernetes_WebCache + - if: $CI_COMMIT_TAG + #----------------------------------------------------------------------------------------------------------------------- docker-build-web-comp: @@ -371,10 +420,59 @@ docker-build-web-comp: needs: - job: build-web-comp rules: - - exists: + - changes: + - projects/grid-failure-information-web-comp/**/* + exists: - projects/grid-failure-information-web-comp/Dockerfile_Kubernetes_WebComp +#----------------------------------------------------------------------------------------------------------------------- +# Upload Artefakte FE +#----------------------------------------------------------------------------------------------------------------------- +upload_artefacts: + stage: upload + image: alpine:3.14.0 + rules: + - if: $CI_COMMIT_TAG + before_script: + - apk add --no-cache git curl bash coreutils zip + script: + - echo PACKAGE_REGISTRY_URL $PACKAGE_REGISTRY_URL + - echo CI_COMMIT_TAG $CI_COMMIT_TAG + - | + if [[ -d dist/grid-failure-information-app ]]; then + echo "main" + mv dist/grid-failure-information-app mainFE + zip -r mainFE.zip mainFE + curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file ./mainFE.zip "${PACKAGE_REGISTRY_URL}${CI_COMMIT_TAG}/artefakte/mainFE.zip" + fi + - | + if [[ -d dist/grid-failure-information-map-app ]]; then + echo "mapApp" + mv dist/grid-failure-information-map-app mapAppFE + zip -r mapAppFE.zip mapAppFE + curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file ./mapAppFE.zip "${PACKAGE_REGISTRY_URL}${CI_COMMIT_TAG}/artefakte/mapAppFE.zip" + fi + - | + if [[ -d dist/grid-failure-information-table-app ]]; then + mv dist/grid-failure-information-table-app tableAppFE + zip -r tableAppFE.zip tableAppFE + curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file ./tableAppFE.zip "${PACKAGE_REGISTRY_URL}${CI_COMMIT_TAG}/artefakte/tableAppFE.zip" + fi + - | + if [[ -d dist/grid-failure-information-web-comp ]]; then + mv dist/grid-failure-information-web-comp webCompFE + zip -r webCompFE.zip webCompFE + curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file ./webCompFE.zip "${PACKAGE_REGISTRY_URL}${CI_COMMIT_TAG}/artefakte/webCompFE.zip" + fi + - | + if [[ -d projects/grid-failure-information-web-cache/dist ]]; then + mv projects/grid-failure-information-web-cache/dist webCacheFE + zip -r webCacheFE.zip webCacheFE + curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file ./webCacheFE.zip "${PACKAGE_REGISTRY_URL}${CI_COMMIT_TAG}/artefakte/webCacheFE.zip" + fi + + #----------------------------------------------------------------------------------------------------------------------- # Deploy #----------------------------------------------------------------------------------------------------------------------- @@ -383,26 +481,31 @@ docker-build-web-comp: cache: {} variables: GIT_STRATEGY: none - DEPLOYMENT_FOLDER: apps/gridfailureinformation/$DEPLOYMENT_SUB_FOLDER + DEPLOYMENT_FILE: fileDefaultVarPlaceholder + YAML_IMAGE_NAME: image before_script: - apk add --no-cache git curl bash coreutils - - curl -s "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh" | bash - - mv kustomize /usr/local/bin/ + - apk add yq --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community - ls -l - - echo current GITLAB_DEPLOYMENT_REPO_URL ${GITLAB_DEPLOYMENT_REPO_URL} + - echo current GITLAB_DEPLOYMENT_REPO_URL {GITLAB_DEPLOYMENT_REPO_URL} - git clone https://${CI_USERNAME}:${CI_PUSH_TOKEN}@gitlab.com/${GITLAB_DEPLOYMENT_REPO_URL} - cd * - git config --global user.email "gitlab@gitlab.com" - git config --global user.name "GitLab CI/CD" script: - ls -l + - cat ${DEPLOYMENT_FILE} - echo FINAL_REGISTRY_IMAGE ${FINAL_REGISTRY_IMAGE} - - cd ${DEPLOYMENT_FOLDER} - - kustomize edit set image ${BASE_IMAGE_NAME}=${FINAL_REGISTRY_IMAGE} - - cat kustomization.yaml + - echo APP_NAME ${APP_NAME} + - echo IMAGE_TAG ${IMAGE_TAG} + - echo REGISTRY_IMAGE_BASE ${REGISTRY_IMAGE_BASE} + - yq e -i '.apps.[env(YAML_APP_NAME)][env(YAML_IMAGE_NAME)].tag = env(IMAGE_TAG)' ${DEPLOYMENT_FILE} + - yq e -i '.apps.[env(YAML_APP_NAME)][env(YAML_IMAGE_NAME)].repository = env(REGISTRY_IMAGE_BASE)' ${DEPLOYMENT_FILE} + - cat ${DEPLOYMENT_FILE} - git commit -am '[skip ci] Image update' - git push origin main + #------------------------------ # Deploy - QA-Environment #------------------------------ @@ -410,56 +513,71 @@ deploy-qa-main: stage: Deploy-Main extends: .deploy-script variables: - BASE_IMAGE_NAME: main-image - DEPLOYMENT_SUB_FOLDER: frontend/environments/qa + YAML_APP_NAME: gfi-fe + DEPLOYMENT_FILE: deployment/applications/values-gfi-qa.yaml dependencies: - docker-build-main - only: - - master + rules: + - changes: + - projects/grid-failure-information-app/**/* + if: $CI_COMMIT_BRANCH == "master" + - if: $CI_COMMIT_TAG deploy-qa-map-app: stage: Deploy-Map-App extends: .deploy-script variables: - BASE_IMAGE_NAME: main-image - DEPLOYMENT_SUB_FOLDER: map-app/environments/qa + YAML_APP_NAME: gfi-map-app + DEPLOYMENT_FILE: deployment/applications/values-gfi-qa.yaml dependencies: - docker-build-map-app - only: - - master + rules: + - changes: + - projects/grid-failure-information-map-app/**/* + if: $CI_COMMIT_BRANCH == "master" + - if: $CI_COMMIT_TAG deploy-qa-table-app: stage: Deploy-Table-App extends: .deploy-script variables: - BASE_IMAGE_NAME: main-image - DEPLOYMENT_SUB_FOLDER: table-app/environments/qa + YAML_APP_NAME: gfi-table-app + DEPLOYMENT_FILE: deployment/applications/values-gfi-qa.yaml dependencies: - docker-build-table-app - only: - - master + rules: + - changes: + - projects/grid-failure-information-table-app/**/* + if: $CI_COMMIT_BRANCH == "master" + - if: $CI_COMMIT_TAG deploy-qa-web-comp: stage: Deploy-Web-Comp extends: .deploy-script variables: - BASE_IMAGE_NAME: main-image - DEPLOYMENT_SUB_FOLDER: web-comp/environments/qa + YAML_APP_NAME: gfi-web-comp + DEPLOYMENT_FILE: deployment/applications/values-gfi-qa.yaml dependencies: - docker-build-web-comp - only: - - master + rules: + - changes: + - projects/grid-failure-information-web-comp/**/* + if: $CI_COMMIT_BRANCH == "master" + - if: $CI_COMMIT_TAG deploy-qa-web-cache: stage: Deploy-Web-Cache extends: .deploy-script variables: - BASE_IMAGE_NAME: main-image - DEPLOYMENT_SUB_FOLDER: web-cache/environments/qa + YAML_APP_NAME: gfi-web-cache + DEPLOYMENT_FILE: deployment/applications/values-gfi-qa.yaml dependencies: - docker-build-web-cache - only: - - master + rules: + - changes: + - projects/grid-failure-information-web-cache/**/* + if: $CI_PROJECT_NAME == "gridfailureinformation.frontend.web-cache" && $CI_COMMIT_REF_NAME == "master" + - if: $CI_COMMIT_TAG #------------------------------ # Deploy - DEV-Environment @@ -468,8 +586,8 @@ deploy-dev-main: stage: Deploy-Main extends: .deploy-script variables: - BASE_IMAGE_NAME: main-image - DEPLOYMENT_SUB_FOLDER: frontend/environments/dev + YAML_APP_NAME: gfi-fe + DEPLOYMENT_FILE: deployment/applications/values-gfi-dev.yaml dependencies: - docker-build-main only: @@ -479,8 +597,8 @@ deploy-dev-map-app: stage: Deploy-Map-App extends: .deploy-script variables: - BASE_IMAGE_NAME: main-image - DEPLOYMENT_SUB_FOLDER: map-app/environments/dev + YAML_APP_NAME: gfi-map-app + DEPLOYMENT_FILE: deployment/applications/values-gfi-dev.yaml dependencies: - docker-build-map-app only: @@ -490,8 +608,8 @@ deploy-dev-table-app: stage: Deploy-Table-App extends: .deploy-script variables: - BASE_IMAGE_NAME: main-image - DEPLOYMENT_SUB_FOLDER: table-app/environments/dev + YAML_APP_NAME: gfi-table-app + DEPLOYMENT_FILE: deployment/applications/values-gfi-dev.yaml dependencies: - docker-build-table-app only: @@ -501,8 +619,8 @@ deploy-dev-web-comp: stage: Deploy-Web-Comp extends: .deploy-script variables: - BASE_IMAGE_NAME: main-image - DEPLOYMENT_SUB_FOLDER: web-comp/environments/dev + YAML_APP_NAME: gfi-web-comp + DEPLOYMENT_FILE: deployment/applications/values-gfi-dev.yaml dependencies: - docker-build-web-comp only: @@ -512,9 +630,41 @@ deploy-dev-web-cache: stage: Deploy-Web-Cache extends: .deploy-script variables: - BASE_IMAGE_NAME: main-image - DEPLOYMENT_SUB_FOLDER: web-cache/environments/dev + YAML_APP_NAME: gfi-web-cache + DEPLOYMENT_FILE: deployment/applications/values-gfi-dev.yaml dependencies: - docker-build-web-cache only: - DEVELOP + + +#------------------------------ +# Release +#------------------------------ +release_job: + stage: release + image: registry.gitlab.com/gitlab-org/release-cli:latest + needs: + - job: upload_artefacts + artifacts: false + only: + - tags + script: + - echo 'running release_job' + release: + name: 'Release $CI_COMMIT_TAG' + description: 'Created using the release-cli' + tag_name: '$CI_COMMIT_TAG' + ref: '$CI_COMMIT_SHA' + assets: + links: + - name: 'mainFE.zip (Download)' + url: "${PACKAGE_REGISTRY_URL}${CI_COMMIT_TAG}/artefakte/mainFE.zip" + - name: 'mapAppFE.zip (Download)' + url: "${PACKAGE_REGISTRY_URL}${CI_COMMIT_TAG}/artefakte/mapAppFE.zip" + - name: 'tableAppFE.zip (Download)' + url: "${PACKAGE_REGISTRY_URL}${CI_COMMIT_TAG}/artefakte/tableAppFE.zip" + - name: 'webCompFE.zip (Download)' + url: "${PACKAGE_REGISTRY_URL}${CI_COMMIT_TAG}/artefakte/webCompFE.zip" + - name: 'webCacheFE.zip (Download)' + url: "${PACKAGE_REGISTRY_URL}${CI_COMMIT_TAG}/artefakte/webCacheFE.zip"