Loading .gitlab-ci.yml 0 → 100644 +170 −0 Original line number Diff line number Diff line stages: - lint - get_images - update_values - package_publish default: image: labs.etsi.org:5050/osl/hypo/code/org.etsi.osl.hypo.ops/cicd/integration.tests/docker:20.10.16 variables: GIT_DEPTH: 0 TMF_API_URL: "https://labs.etsi.org/rep/api/v4/projects/470/registry/repositories/3021/tags?page=1&per_page=500" SONATA_URL: "https://labs.etsi.org/rep/api/v4/projects/479/registry/repositories/3031/tags?page=1&per_page=500" OSS_CLIENT_URL: "https://labs.etsi.org/rep/api/v4/projects/474/registry/repositories/3023/tags?page=1&per_page=500" PKG_MANAGER_URL: "https://labs.etsi.org/rep/api/v4/projects/478/registry/repositories/3033/tags?page=1&per_page=500" PORTAL_CART_URL: "https://labs.etsi.org/rep/api/v4/projects/465/registry/repositories/3041/tags?page=1&per_page=500" TELEMETRY_CLIENT_URL: "https://labs.etsi.org/rep/api/v4/projects/475/registry/repositories/3028/tags?page=1&per_page=500" PEERING_API_URL: "https://labs.etsi.org/rep/api/v4/projects/468/registry/repositories/3014/tags?page=1&per_page=500" REGISTRY_API_URL: "https://labs.etsi.org/rep/api/v4/projects/469/registry/repositories/3018/tags?page=1&per_page=500" FABRIC_API_URL: "https://labs.etsi.org/rep/api/v4/projects/467/registry/repositories/3011/tags?page=1&per_page=500" PORTAL_URL: "https://labs.etsi.org/rep/api/v4/projects/466/registry/repositories/3038/tags?page=1&per_page=500" lint: stage: lint image: name: labs.etsi.org:5050/osl/hypo/code/org.etsi.osl.hypo.ops/cicd/integration.tests/alpine/helm:3.17.2 entrypoint: [""] script: - ls - cd charts - helm dep build hypo - helm lint hypo #rules: # - if: '$CI_COMMIT_BRANCH == "main" && $CI_PIPELINE_SOURCE == "schedule"' get_images: stage: get_images image: labs.etsi.org:5050/osl/hypo/code/org.etsi.osl.hypo.ops/cicd/integration.tests/alpine:latest before_script: - apk update && apk add bash curl jq script: - | TMF_API=$(curl --header "PRIVATE-TOKEN: $GROUP_ACCESS_TOKEN" --url $TMF_API_URL | jq -r '.[].location' | grep -E '[0-9]+\.[0-9]+\.[0-9]+' | sort -V | tail -n 1) - | SONATA=$(curl --header "PRIVATE-TOKEN: $GROUP_ACCESS_TOKEN" --url $SONATA_URL | jq -r '.[].location' | grep -E '[0-9]+\.[0-9]+\.[0-9]+' | sort -V | tail -n 1) - | OSS_CLIENT=$(curl --header "PRIVATE-TOKEN: $GROUP_ACCESS_TOKEN" --url $OSS_CLIENT_URL | jq -r '.[].location' | grep -E '[0-9]+\.[0-9]+\.[0-9]+' | sort -V | tail -n 1) - | PKG_MANAGER=$(curl --header "PRIVATE-TOKEN: $GROUP_ACCESS_TOKEN" --url $PKG_MANAGER_URL | jq -r '.[].location' | grep -E '[0-9]+\.[0-9]+\.[0-9]+' | sort -V | tail -n 1) - | PORTAL_CART=$(curl --header "PRIVATE-TOKEN: $GROUP_ACCESS_TOKEN" --url $PORTAL_CART_URL | jq -r '.[].location' | grep -E '[0-9]+\.[0-9]+\.[0-9]+' | sort -V | tail -n 1) - | TELEMETRY_CLIENT=$(curl --header "PRIVATE-TOKEN: $GROUP_ACCESS_TOKEN" --url $TELEMETRY_CLIENT_URL | jq -r '.[].location' | grep -E '[0-9]+\.[0-9]+\.[0-9]+' | sort -V | tail -n 1) - | PEERING_API=$(curl --header "PRIVATE-TOKEN: $GROUP_ACCESS_TOKEN" --url $PEERING_API_URL | jq -r '.[].location' | grep -E '[0-9]+\.[0-9]+\.[0-9]+' | sort -V | tail -n 1) - | REGISTRY_API=$(curl --header "PRIVATE-TOKEN: $GROUP_ACCESS_TOKEN" --url $REGISTRY_API_URL | jq -r '.[].location' | grep -E '[0-9]+\.[0-9]+\.[0-9]+' | sort -V | tail -n 1) - | FABRIC_API=$(curl --header "PRIVATE-TOKEN: $GROUP_ACCESS_TOKEN" --url $FABRIC_API_URL | jq -r '.[].location' | grep -E '[0-9]+\.[0-9]+\.[0-9]+' | sort -V | tail -n 1) - | PORTAL=$(curl --header "PRIVATE-TOKEN: $GROUP_ACCESS_TOKEN" --url $PORTAL_URL | jq -r '.[].location' | grep -E '[0-9]+\.[0-9]+\.[0-9]+' | sort -V | tail -n 1) - echo "TMF_API=$TMF_API" > build.env - echo "SONATA=$SONATA" >> build.env - echo "PKG_MANAGER=$PKG_MANAGER" >> build.env - echo "OSS_CLIENT=$OSS_CLIENT" >> build.env - echo "PORTAL_CART=$PORTAL_CART" >> build.env - echo "TELEMETRY_CLIENT=$TELEMETRY_CLIENT" >> build.env - echo "PEERING_API=$PEERING_API" >> build.env - echo "REGISTRY_API=$REGISTRY_API" >> build.env - echo "FABRIC_API=$FABRIC_API" >> build.env - echo "PORTAL=$PORTAL" >> build.env artifacts: paths: - build.env #rules: # - if: '$CI_COMMIT_BRANCH == "main" && $CI_PIPELINE_SOURCE == "schedule"' update_values: stage: update_values image: labs.etsi.org:5050/osl/hypo/code/org.etsi.osl.hypo.ops/cicd/integration.tests/python:3.9 needs: - get_images dependencies: - get_images before_script: - cat build.env - source build.env - echo $PKG_MANAGER - echo $OSS_CLIENT - echo $SONATA - echo $TMF_API - echo $PORTAL_CART - echo $TELEMETRY_CLIENT - echo $PEERING_API - echo $REGISTRY_API - echo $FABRIC_API - echo $PORTAL - python3 -m pip install ruamel.yaml script: - #echo "SKIP_PACKAGE=false" > skip.env - pwd - python3 scripts/helm_update_etsi.py $PKG_MANAGER $OSS_CLIENT $SONATA $TMF_API $PORTAL_CART $TELEMETRY_CLIENT $PEERING_API $REGISTRY_API $FABRIC_API $PORTAL --bump-chart --file=./charts/hypo/values.yaml - git add . - git config --global user.email $GITLAB_USER_EMAIL - git config --global user.name $GITLAB_USER_NAME - | if git commit -m "Update values.yaml [skip ci]"; then git push -f "https://${GITLAB_USER_NAME}:${GROUP_ACCESS_TOKEN}@labs.etsi.org/rep/osl/hypo/code/org.etsi.osl.hypo.ops/installer.git" HEAD:main git fetch origin git checkout gitops-cd git pull origin gitops-cd git fetch origin main git merge origin/main -m "Merge changes from main" git status git push -f "https://${GITLAB_USER_NAME}:${GROUP_ACCESS_TOKEN}@labs.etsi.org/rep/osl/hypo/code/org.etsi.osl.hypo.ops/installer.git" HEAD:gitops-cd else echo "No changes to commit." #echo "SKIP_PACKAGE=true" > skip.env fi #artifacts: # paths: # - skip.env #rules: # - if: '$CI_COMMIT_BRANCH == "main" && $CI_PIPELINE_SOURCE == "schedule"' package_publish: stage: package_publish allow_failure: true image: name: labs.etsi.org:5050/osl/hypo/code/org.etsi.osl.hypo.ops/cicd/integration.tests/alpine/helm:3.17.2 entrypoint: [""] needs: - build_helm_package dependencies: - build_helm_package variables: CHART: hypo HELM_EXPERIMENTAL_OCI: 1 before_script: - git fetch origin - git reset --hard origin/main - helm registry login -u "${HELM_REGISTRY_USER}" -p "${HELM_REGISTRY_PASSWORD}" registry.ubitech.eu - helm plugin install --version=v0.9.0 https://github.com/chartmuseum/helm-push.git #- source skip.env script: #- 'if [ "$SKIP_PACKAGE" == "true" ]; then exit 0; fi' - cd charts - helm package ./${CHART} - CHART_TGZ=$(ls ${CHART}*.tgz | head -n1) - > curl --request POST --form "chart=@${CHART_TGZ}" --user "${HELM_REGISTRY_USER}:${HELM_REGISTRY_PASSWORD}" https://labs.etsi.org/rep/api/v4/projects/481/packages/helm/api/stable/charts - helm push ${CHART}*.tgz oci://labs.etsi.org:5050/osl/hypo/code/org.etsi.osl.hypo.ops/installer - VERSION=$(helm show chart ${CHART_TGZ} | grep '^version:' | awk '{print $2}') - echo "$VERSION" > ../chart_version.txt artifacts: paths: #- skip.env - chart_version.txt #rules: # - if: '$CI_COMMIT_BRANCH == "main" && $CI_PIPELINE_SOURCE == "schedule"' Loading
.gitlab-ci.yml 0 → 100644 +170 −0 Original line number Diff line number Diff line stages: - lint - get_images - update_values - package_publish default: image: labs.etsi.org:5050/osl/hypo/code/org.etsi.osl.hypo.ops/cicd/integration.tests/docker:20.10.16 variables: GIT_DEPTH: 0 TMF_API_URL: "https://labs.etsi.org/rep/api/v4/projects/470/registry/repositories/3021/tags?page=1&per_page=500" SONATA_URL: "https://labs.etsi.org/rep/api/v4/projects/479/registry/repositories/3031/tags?page=1&per_page=500" OSS_CLIENT_URL: "https://labs.etsi.org/rep/api/v4/projects/474/registry/repositories/3023/tags?page=1&per_page=500" PKG_MANAGER_URL: "https://labs.etsi.org/rep/api/v4/projects/478/registry/repositories/3033/tags?page=1&per_page=500" PORTAL_CART_URL: "https://labs.etsi.org/rep/api/v4/projects/465/registry/repositories/3041/tags?page=1&per_page=500" TELEMETRY_CLIENT_URL: "https://labs.etsi.org/rep/api/v4/projects/475/registry/repositories/3028/tags?page=1&per_page=500" PEERING_API_URL: "https://labs.etsi.org/rep/api/v4/projects/468/registry/repositories/3014/tags?page=1&per_page=500" REGISTRY_API_URL: "https://labs.etsi.org/rep/api/v4/projects/469/registry/repositories/3018/tags?page=1&per_page=500" FABRIC_API_URL: "https://labs.etsi.org/rep/api/v4/projects/467/registry/repositories/3011/tags?page=1&per_page=500" PORTAL_URL: "https://labs.etsi.org/rep/api/v4/projects/466/registry/repositories/3038/tags?page=1&per_page=500" lint: stage: lint image: name: labs.etsi.org:5050/osl/hypo/code/org.etsi.osl.hypo.ops/cicd/integration.tests/alpine/helm:3.17.2 entrypoint: [""] script: - ls - cd charts - helm dep build hypo - helm lint hypo #rules: # - if: '$CI_COMMIT_BRANCH == "main" && $CI_PIPELINE_SOURCE == "schedule"' get_images: stage: get_images image: labs.etsi.org:5050/osl/hypo/code/org.etsi.osl.hypo.ops/cicd/integration.tests/alpine:latest before_script: - apk update && apk add bash curl jq script: - | TMF_API=$(curl --header "PRIVATE-TOKEN: $GROUP_ACCESS_TOKEN" --url $TMF_API_URL | jq -r '.[].location' | grep -E '[0-9]+\.[0-9]+\.[0-9]+' | sort -V | tail -n 1) - | SONATA=$(curl --header "PRIVATE-TOKEN: $GROUP_ACCESS_TOKEN" --url $SONATA_URL | jq -r '.[].location' | grep -E '[0-9]+\.[0-9]+\.[0-9]+' | sort -V | tail -n 1) - | OSS_CLIENT=$(curl --header "PRIVATE-TOKEN: $GROUP_ACCESS_TOKEN" --url $OSS_CLIENT_URL | jq -r '.[].location' | grep -E '[0-9]+\.[0-9]+\.[0-9]+' | sort -V | tail -n 1) - | PKG_MANAGER=$(curl --header "PRIVATE-TOKEN: $GROUP_ACCESS_TOKEN" --url $PKG_MANAGER_URL | jq -r '.[].location' | grep -E '[0-9]+\.[0-9]+\.[0-9]+' | sort -V | tail -n 1) - | PORTAL_CART=$(curl --header "PRIVATE-TOKEN: $GROUP_ACCESS_TOKEN" --url $PORTAL_CART_URL | jq -r '.[].location' | grep -E '[0-9]+\.[0-9]+\.[0-9]+' | sort -V | tail -n 1) - | TELEMETRY_CLIENT=$(curl --header "PRIVATE-TOKEN: $GROUP_ACCESS_TOKEN" --url $TELEMETRY_CLIENT_URL | jq -r '.[].location' | grep -E '[0-9]+\.[0-9]+\.[0-9]+' | sort -V | tail -n 1) - | PEERING_API=$(curl --header "PRIVATE-TOKEN: $GROUP_ACCESS_TOKEN" --url $PEERING_API_URL | jq -r '.[].location' | grep -E '[0-9]+\.[0-9]+\.[0-9]+' | sort -V | tail -n 1) - | REGISTRY_API=$(curl --header "PRIVATE-TOKEN: $GROUP_ACCESS_TOKEN" --url $REGISTRY_API_URL | jq -r '.[].location' | grep -E '[0-9]+\.[0-9]+\.[0-9]+' | sort -V | tail -n 1) - | FABRIC_API=$(curl --header "PRIVATE-TOKEN: $GROUP_ACCESS_TOKEN" --url $FABRIC_API_URL | jq -r '.[].location' | grep -E '[0-9]+\.[0-9]+\.[0-9]+' | sort -V | tail -n 1) - | PORTAL=$(curl --header "PRIVATE-TOKEN: $GROUP_ACCESS_TOKEN" --url $PORTAL_URL | jq -r '.[].location' | grep -E '[0-9]+\.[0-9]+\.[0-9]+' | sort -V | tail -n 1) - echo "TMF_API=$TMF_API" > build.env - echo "SONATA=$SONATA" >> build.env - echo "PKG_MANAGER=$PKG_MANAGER" >> build.env - echo "OSS_CLIENT=$OSS_CLIENT" >> build.env - echo "PORTAL_CART=$PORTAL_CART" >> build.env - echo "TELEMETRY_CLIENT=$TELEMETRY_CLIENT" >> build.env - echo "PEERING_API=$PEERING_API" >> build.env - echo "REGISTRY_API=$REGISTRY_API" >> build.env - echo "FABRIC_API=$FABRIC_API" >> build.env - echo "PORTAL=$PORTAL" >> build.env artifacts: paths: - build.env #rules: # - if: '$CI_COMMIT_BRANCH == "main" && $CI_PIPELINE_SOURCE == "schedule"' update_values: stage: update_values image: labs.etsi.org:5050/osl/hypo/code/org.etsi.osl.hypo.ops/cicd/integration.tests/python:3.9 needs: - get_images dependencies: - get_images before_script: - cat build.env - source build.env - echo $PKG_MANAGER - echo $OSS_CLIENT - echo $SONATA - echo $TMF_API - echo $PORTAL_CART - echo $TELEMETRY_CLIENT - echo $PEERING_API - echo $REGISTRY_API - echo $FABRIC_API - echo $PORTAL - python3 -m pip install ruamel.yaml script: - #echo "SKIP_PACKAGE=false" > skip.env - pwd - python3 scripts/helm_update_etsi.py $PKG_MANAGER $OSS_CLIENT $SONATA $TMF_API $PORTAL_CART $TELEMETRY_CLIENT $PEERING_API $REGISTRY_API $FABRIC_API $PORTAL --bump-chart --file=./charts/hypo/values.yaml - git add . - git config --global user.email $GITLAB_USER_EMAIL - git config --global user.name $GITLAB_USER_NAME - | if git commit -m "Update values.yaml [skip ci]"; then git push -f "https://${GITLAB_USER_NAME}:${GROUP_ACCESS_TOKEN}@labs.etsi.org/rep/osl/hypo/code/org.etsi.osl.hypo.ops/installer.git" HEAD:main git fetch origin git checkout gitops-cd git pull origin gitops-cd git fetch origin main git merge origin/main -m "Merge changes from main" git status git push -f "https://${GITLAB_USER_NAME}:${GROUP_ACCESS_TOKEN}@labs.etsi.org/rep/osl/hypo/code/org.etsi.osl.hypo.ops/installer.git" HEAD:gitops-cd else echo "No changes to commit." #echo "SKIP_PACKAGE=true" > skip.env fi #artifacts: # paths: # - skip.env #rules: # - if: '$CI_COMMIT_BRANCH == "main" && $CI_PIPELINE_SOURCE == "schedule"' package_publish: stage: package_publish allow_failure: true image: name: labs.etsi.org:5050/osl/hypo/code/org.etsi.osl.hypo.ops/cicd/integration.tests/alpine/helm:3.17.2 entrypoint: [""] needs: - build_helm_package dependencies: - build_helm_package variables: CHART: hypo HELM_EXPERIMENTAL_OCI: 1 before_script: - git fetch origin - git reset --hard origin/main - helm registry login -u "${HELM_REGISTRY_USER}" -p "${HELM_REGISTRY_PASSWORD}" registry.ubitech.eu - helm plugin install --version=v0.9.0 https://github.com/chartmuseum/helm-push.git #- source skip.env script: #- 'if [ "$SKIP_PACKAGE" == "true" ]; then exit 0; fi' - cd charts - helm package ./${CHART} - CHART_TGZ=$(ls ${CHART}*.tgz | head -n1) - > curl --request POST --form "chart=@${CHART_TGZ}" --user "${HELM_REGISTRY_USER}:${HELM_REGISTRY_PASSWORD}" https://labs.etsi.org/rep/api/v4/projects/481/packages/helm/api/stable/charts - helm push ${CHART}*.tgz oci://labs.etsi.org:5050/osl/hypo/code/org.etsi.osl.hypo.ops/installer - VERSION=$(helm show chart ${CHART_TGZ} | grep '^version:' | awk '{print $2}') - echo "$VERSION" > ../chart_version.txt artifacts: paths: #- skip.env - chart_version.txt #rules: # - if: '$CI_COMMIT_BRANCH == "main" && $CI_PIPELINE_SOURCE == "schedule"'