Bump js-yaml from 4.3.0 to 5.2.3 in /tests/functional #9607
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| --- | |
| name: build-iso-and-end2end-test | |
| concurrency: | |
| group: "zenko-tests-${{ github.ref_name }}" | |
| cancel-in-progress: true | |
| on: | |
| push: | |
| branches-ignore: | |
| - 'development/**' | |
| - 'q/*' | |
| env: | |
| # kind-env | |
| CI_PASS_ON_TEST_FAILURE: 'true' | |
| WORKER_COUNT: '2' | |
| OPERATOR_REPO: git@github.com:scality/zenko-operator.git | |
| OPERATOR_IMAGE: "" | |
| KIND_NODE_IMAGE: "kindest/node:v1.33.4@sha256:25a6018e48dfcaee478f4a59af81157a437f15e6e140bf103f85a2e7cd0cbbf2" | |
| VOLUME_ROOT: /artifacts | |
| OIDC_REALM: "zenko" | |
| OIDC_CLIENT_ID: "zenko-ui" | |
| OIDC_USERNAME: 'storage_manager' | |
| OIDC_PASSWORD: '123' | |
| OIDC_FIRST_NAME: 'hello' | |
| OIDC_LAST_NAME: 'world' | |
| HTTP_PROXY: "" | |
| HTTPS_PROXY: "" | |
| BACKBEAT_BUCKET_CHECK_TIMEOUT_S: "" | |
| BACKBEAT_LCC_CRON_RULE: "" | |
| # e2e-env | |
| VAULT_TEST_IMAGE_NAME: "" | |
| VAULT_TEST_IMAGE_TAG: "" | |
| # http-env | |
| OIDC_ENDPOINT: 'http://keycloak.zenko.local' | |
| OIDC_HOST: 'keycloak.zenko.local' | |
| ENABLE_KEYCLOAK_HTTPS: 'false' | |
| KEYCLOAK_VERSION: '18.4.4' | |
| PROMETHEUS_NAME: "prometheus" | |
| # mock-env | |
| AZURE_ACCOUNT_NAME: devstoreaccount1 | |
| AZURE_BACKEND_ENDPOINT: https://devstoreaccount1.blob.azure-mock.zenko.local | |
| AZURE_BACKEND_QUEUE_ENDPOINT: https://devstoreaccount1.queue.azure-mock.zenko.local | |
| AZURE_SECRET_KEY: Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw== | |
| AWS_ENDPOINT: https://aws-mock.zenko.local | |
| AWS_ACCESS_KEY: accessKey1 | |
| AWS_SECRET_KEY: verySecretKey1 | |
| VERIFY_CERTIFICATES: "false" | |
| # secrets-env | |
| AWS_BACKEND_SOURCE_LOCATION: awsbackend | |
| AWS_BACKEND_DESTINATION_LOCATION: awsbackendmismatch | |
| AWS_BACKEND_DESTINATION_FAIL_LOCATION: awsbackendfail | |
| AWS_BACKEND_DESTINATION_REPLICATION_FAIL_CTST_LOCATION: awsbackendreplicationctstfail | |
| GCP_BACKEND_DESTINATION_LOCATION: gcpbackendmismatch | |
| AZURE_BACKEND_DESTINATION_LOCATION: azurebackendmismatch | |
| COLD_BACKEND_DESTINATION_LOCATION: e2e-cold | |
| AZURE_ARCHIVE_BACKEND_DESTINATION_LOCATION: e2e-azure-archive | |
| MIRIA_BACKEND_DESTINATION_LOCATION: e2e-miria-archive | |
| LOCATION_QUOTA_BACKEND: quotabackend | |
| AWS_BUCKET_NAME: ci-zenko-aws-target-bucket | |
| AWS_CRR_BUCKET_NAME: ci-zenko-aws-crr-target-bucket | |
| AWS_FAIL_BUCKET_NAME: ci-zenko-aws-fail-target-bucket | |
| AWS_REPLICATION_FAIL_CTST_BUCKET_NAME: ci-zenko-aws-replication-fail-ctst-bucket | |
| AZURE_CRR_BUCKET_NAME: ci-zenko-azure-crr-target-bucket | |
| AZURE_ARCHIVE_BUCKET_NAME: ci-zenko-azure-archive-target-bucket | |
| AZURE_ARCHIVE_BUCKET_NAME_2: ci-zenko-azure-archive-target-bucket-2 | |
| AZURE_ARCHIVE_QUEUE_NAME: ci-zenko-azure-archive-target-queue | |
| GCP_CRR_BUCKET_NAME: ci-zenko-gcp-crr-target-bucket | |
| GCP_CRR_MPU_BUCKET_NAME: ci-zenko-gcp-crr-mpu-bucket | |
| GCP_ACCESS_KEY: ${{ secrets.AWS_GCP_BACKEND_ACCESS_KEY }} | |
| GCP_SECRET_KEY: ${{ secrets.AWS_GCP_BACKEND_SECRET_KEY }} | |
| GCP_BACKEND_SERVICE_KEY: ${{ secrets.GCP_BACKEND_SERVICE_KEY }} | |
| GCP_BACKEND_SERVICE_EMAIL: ${{ secrets.GCP_BACKEND_SERVICE_EMAIL }} | |
| DEPLOY_CRR_LOCATIONS: "true" | |
| CRR_SOURCE_LOCATION_NAME: crr-source-location | |
| CRR_DESTINATION_LOCATION_NAME: crr-destination-location | |
| CRR_SOURCE_ACCOUNT_NAME: crr-source-account | |
| CRR_DESTINATION_ACCOUNT_NAME: crr-destination-account | |
| CRR_LOCATION_A_NAME: crr-location-a | |
| CRR_LOCATION_B_NAME: crr-location-b | |
| CRR_LOCATION_C_NAME: crr-location-c | |
| CRR_ACCOUNT_A_NAME: crr-account-a | |
| CRR_ACCOUNT_B_NAME: crr-account-b | |
| CRR_ACCOUNT_C_NAME: crr-account-c | |
| CRR_ROLE_NAME: crr-role | |
| # Enable this for Ring tests | |
| ENABLE_RING_TESTS: "false" | |
| RING_S3C_ACCESS_KEY: accessKey1 | |
| RING_S3C_SECRET_KEY: verySecretKey1 | |
| RING_S3C_ENDPOINT: http://s3c.local:8000 | |
| RING_S3C_BACKEND_SOURCE_LOCATION: rings3cbackendingestion | |
| RING_S3C_INGESTION_SRC_BUCKET_NAME: ingestion-test-src-bucket | |
| RING_S3C_BACKEND_SOURCE_NON_VERSIONED_LOCATION: rings3cbackendingestionnonversioned | |
| RING_S3C_INGESTION_SRC_NON_VERSIONED_BUCKET_NAME: ingestion-test-src-non-versioned-bucket | |
| RING_S3C_INGESTION_NON_VERSIONED_OBJECT_COUNT_PER_TYPE: 2 | |
| # CTST end2end tests | |
| NOTIF_DEST_NAME: "destination1" | |
| NOTIF_DEST_TOPIC: "destination-topic-1" | |
| NOTIF_ALT_DEST_NAME: "destination2" | |
| NOTIF_ALT_DEST_TOPIC: "destination-topic-2" | |
| NOTIF_PLAIN_DEST_NAME: "destination3" | |
| NOTIF_AUTH_DEST_TOPIC: "destination-topic-3" | |
| NOTIF_AUTH_DEST_USERNAME: "admin" | |
| NOTIF_AUTH_DEST_PASSWORD: "admin-secret" | |
| NOTIF_SCRAM_DEST_NAME: "destination4" | |
| NOTIF_SCRAM_DEST_TOPIC: "destination-topic-4" | |
| NOTIF_SCRAM_DEST_USERNAME: "admin" | |
| NOTIF_SCRAM_DEST_PASSWORD: "admin-secret" | |
| SUBDOMAIN: "zenko.local" | |
| DR_SUBDOMAIN: "dr.zenko.local" | |
| ZENKO_ENABLE_SOSAPI: false | |
| EXPIRE_ONE_DAY_EARLIER: true | |
| TRANSITION_ONE_DAY_EARLIER: true | |
| TIME_PROGRESSION_FACTOR: 1 | |
| # DEBUG WAIT | |
| TMATE_SERVER_HOST: ${{ secrets.TMATE_SERVER_HOST }} | |
| TMATE_SERVER_PORT: ${{ secrets.TMATE_SERVER_PORT }} | |
| TMATE_SERVER_RSA_FINGERPRINT: ${{ secrets.TMATE_SERVER_RSA_FINGERPRINT }} | |
| TMATE_SERVER_ED25519_FINGERPRINT: ${{ secrets.TMATE_SERVER_ED25519_FINGERPRINT }} | |
| # Mocha reporter configuration | |
| MOCHA_FILE: ${{ github.workspace }}/_reports/test-results-[hash].xml | |
| jobs: | |
| check-dashboards: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| # check_versions.sh counts dashboard revisions via `git rev-list`, | |
| # so it needs the full history rather than a shallow clone. | |
| fetch-depth: 0 | |
| - name: Setup python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: 3.14 | |
| cache: pip | |
| cache-dependency-path: monitoring/requirements.txt | |
| - name: Setup venv | |
| run: | | |
| python -m venv .venv | |
| echo "$PWD/.venv/bin" >> $GITHUB_PATH | |
| - name: Install dependencies | |
| working-directory: monitoring | |
| run: pip install -r requirements.txt | |
| - name: Generate dashboards | |
| working-directory: monitoring | |
| run: | | |
| for dashboard in */*.dashboard.py; do ( | |
| echo "Generating dashboard for $dashboard" | |
| cd "$(dirname $dashboard)" | |
| rev=$(jq '.version' < dashboard.json) | |
| tmpfile=$(mktemp) | |
| ./$(basename $dashboard) -o $tmpfile | |
| jq --arg rev "$rev" '.version = ($rev | tonumber)' < $tmpfile > dashboard.json | |
| ) done | |
| - name: Check all dashboard files are up-to-date | |
| run: | | |
| if [ -n "$(git status --porcelain)" ]; then | |
| echo "::error title=Dashboard files are out-of-date::Please run generate-dashboard and commit the changes" | |
| git status | |
| git diff | |
| exit 1 | |
| fi | |
| echo "All dashboard files are up-to-date." | |
| - name: Verify monitoring dashboard versions | |
| run: bash ./.github/scripts/check_versions.sh | |
| check-alerts: | |
| uses: ./.github/workflows/alerts.yaml | |
| secrets: inherit | |
| check-scripts: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.11' | |
| - name: Install pytest | |
| run: pip install pytest | |
| - name: Run scripts tests | |
| run: pytest tests/scripts/ | |
| check-workflows: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Setup node | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: '24' | |
| cache: yarn | |
| cache-dependency-path: tests/workflows/yarn.lock | |
| - name: Install dependencies | |
| run: yarn --cwd tests/workflows install --frozen-lockfile | |
| - name: Run workflows tests | |
| run: ACT_LOG=true yarn --cwd tests/workflows test | |
| - name: Collect logs | |
| run: | | |
| mkdir -p /tmp/artifacts/data/${{ github.job }}/act-logs/ | |
| mv tests/workflows/act-*.log /tmp/artifacts/data/check-workflows/act-logs/ | |
| tar zcvf /tmp/artifacts/${{ github.sha }}-${{ github.job }}-act-logs.tgz /tmp/artifacts/data/${{ github.job }}/act-logs; | |
| if: always() | |
| - name: Upload artifacts | |
| uses: scality/action-artifacts@v4 | |
| with: | |
| method: upload | |
| url: https://artifacts.scality.net | |
| user: ${{ secrets.ARTIFACTS_USER }} | |
| password: ${{ secrets.ARTIFACTS_PASSWORD }} | |
| source: /tmp/artifacts | |
| if: always() | |
| build-doc: | |
| runs-on: ubuntu-24.04 | |
| permissions: | |
| contents: read | |
| packages: write | |
| env: | |
| ARTIFACTS_USER: "${{ secrets.ARTIFACTS_USER }}" | |
| ARTIFACTS_PASSWORD: "${{ secrets.ARTIFACTS_PASSWORD }}" | |
| ROOT_DOCUMENTATION_BUILDDIR: "docs/docsource/build" | |
| DOCUMENTATION_BUILDDIR: "build" | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v4 | |
| - name: Login to Registry | |
| uses: docker/login-action@v4 | |
| with: | |
| username: "${{ github.repository_owner }}" | |
| password: "${{ github.token }}" | |
| registry: ghcr.io | |
| - name: Compute docs builder image tag | |
| env: | |
| REPO: ${{ github.repository }} | |
| run: | | |
| echo "DOCS_DOCKERFILE_HASH=$(git rev-parse HEAD:docs/Dockerfile)" >> $GITHUB_ENV | |
| echo "DOCS_IMAGE=ghcr.io/${REPO,,}/docs-builder" >> $GITHUB_ENV | |
| - name: Build and push docs builder image | |
| uses: docker/build-push-action@v7 | |
| with: | |
| push: true | |
| context: ./docs | |
| tags: ${{ env.DOCS_IMAGE }}:${{ env.DOCS_DOCKERFILE_HASH }} | |
| cache-from: type=registry,ref=${{ env.DOCS_IMAGE }}:${{ env.DOCS_DOCKERFILE_HASH }} | |
| cache-to: type=inline | |
| - name: Build docs | |
| run: | | |
| mkdir -p ${{ env.ROOT_DOCUMENTATION_BUILDDIR }} | |
| docker run --rm \ | |
| -v ${{ github.workspace }}:/work \ | |
| -w /work/docs \ | |
| ${{ env.DOCS_IMAGE }}:${{ env.DOCS_DOCKERFILE_HASH }} \ | |
| tox --workdir /tmp/tox -e docs -- html BUILDDIR=${{ env.DOCUMENTATION_BUILDDIR }} | |
| - name: Create tar file for documentation | |
| run: | | |
| sudo chown -R "$(id -u):$(id -g)" ${{ env.ROOT_DOCUMENTATION_BUILDDIR }} | |
| tar --create --gzip --directory ./${{ env.ROOT_DOCUMENTATION_BUILDDIR }} --file ./${{ env.ROOT_DOCUMENTATION_BUILDDIR }}/zenko-documentation.tar.gz doctrees html | |
| - name: Upload documentation | |
| uses: scality/action-artifacts@v4 | |
| with: | |
| method: upload | |
| url: https://artifacts.scality.net | |
| user: ${{ secrets.ARTIFACTS_USER }} | |
| password: ${{ secrets.ARTIFACTS_PASSWORD }} | |
| source: ${{ env.ROOT_DOCUMENTATION_BUILDDIR }} | |
| build-iso: | |
| runs-on: ubuntu-24.04 | |
| needs: [build-kafka, build-mongodb, check-dashboards] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Install tooling | |
| uses: ./.github/actions/install-end2end-dependencies | |
| - name: Install ISO build dependencies | |
| shell: bash | |
| run: |- | |
| sudo apt-get update | |
| sudo apt-get install -y --no-install-recommends \ | |
| genisoimage \ | |
| isomd5sum \ | |
| skopeo | |
| - name: Login to Registry | |
| uses: docker/login-action@v4 | |
| with: | |
| username: "${{ github.repository_owner }}" | |
| password: "${{ github.token }}" | |
| registry: ghcr.io | |
| - name: Login to Docker Hub | |
| uses: docker/login-action@v4 | |
| with: | |
| username: "${{ secrets.DOCKERHUB_LOGIN }}" | |
| password: "${{ secrets.DOCKERHUB_PASSWORD }}" | |
| - name: Get token to access ZKOP | |
| uses: actions/create-github-app-token@v3 | |
| id: app-token | |
| with: | |
| app-id: ${{ vars.ACTIONS_APP_ID }} | |
| private-key: ${{ secrets.ACTIONS_APP_PRIVATE_KEY }} | |
| owner: ${{ github.repository_owner }} | |
| repositories: | | |
| zenko-operator | |
| - name: Configure GIT | |
| run: git config --global url."https://git:${{ env.GIT_ACCESS_TOKEN }}@github.com/".insteadOf "https://github.com/" | |
| env: | |
| GIT_ACCESS_TOKEN: ${{ steps.app-token.outputs.token }} | |
| - name: Build ISO | |
| run: PATH="/usr/local/bin:$PATH" bash -x ./build.sh | |
| working-directory: ./solution | |
| - name: Build base ISO | |
| run: PATH="/usr/local/bin:$PATH" bash -x ./build.sh | |
| working-directory: ./solution-base | |
| - name: Upload ISO | |
| uses: scality/action-artifacts@v4 | |
| with: | |
| method: upload | |
| url: https://artifacts.scality.net | |
| user: ${{ secrets.ARTIFACTS_USER }} | |
| password: ${{ secrets.ARTIFACTS_PASSWORD }} | |
| source: "solution/_build" | |
| - name: Upload base ISO | |
| uses: scality/action-artifacts@v4 | |
| with: | |
| method: upload | |
| url: https://artifacts.scality.net | |
| user: ${{ secrets.ARTIFACTS_USER }} | |
| password: ${{ secrets.ARTIFACTS_PASSWORD }} | |
| source: "solution-base/_build" | |
| build-kafka: | |
| uses: ./.github/workflows/build-kafka.yaml | |
| secrets: inherit | |
| build-mongodb: | |
| uses: ./.github/workflows/build-mongodb.yaml | |
| secrets: inherit | |
| lint-functional-tests: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| with: | |
| persist-credentials: false | |
| - name: Setup Node environment | |
| uses: ./.github/actions/setup-node-env | |
| with: | |
| app-id: ${{ vars.ACTIONS_APP_ID }} | |
| private-key: ${{ secrets.ACTIONS_APP_PRIVATE_KEY }} | |
| repositories: cli-testing | |
| - name: Build cucumber typescript | |
| working-directory: tests/functional | |
| run: yarn build:cucumber | |
| - name: Lint all tests | |
| working-directory: tests/functional | |
| run: yarn lint | |
| - name: Check for unused step definitions | |
| working-directory: tests/functional | |
| run: yarn unused-steps | |
| end2end-pra: | |
| needs: [build-kafka, build-mongodb] | |
| runs-on: ubuntu-24.04-16core | |
| env: | |
| DEPLOY_CRR_LOCATIONS: "false" | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| with: | |
| persist-credentials: false | |
| - name: Install dependencies | |
| uses: ./.github/actions/install-end2end-dependencies | |
| - name: Wait for Docker daemon to be ready | |
| uses: ./.github/actions/wait-docker-ready | |
| - name: Login to Registry | |
| uses: docker/login-action@v4 | |
| with: | |
| username: "${{ github.repository_owner }}" | |
| password: "${{ github.token }}" | |
| registry: ghcr.io | |
| - name: Setup Node environment | |
| id: setup-access | |
| uses: ./.github/actions/setup-node-env | |
| with: | |
| app-id: ${{ vars.ACTIONS_APP_ID }} | |
| private-key: ${{ secrets.ACTIONS_APP_PRIVATE_KEY }} | |
| repositories: | | |
| cli-testing | |
| zenko-operator | |
| - name: Deploy Zenko | |
| uses: ./.github/actions/deploy | |
| env: | |
| GIT_ACCESS_TOKEN: ${{ steps.setup-access.outputs.token }} | |
| - name: Prepare PRA environment | |
| run: bash prepare-pra.sh | |
| working-directory: ./.github/scripts/end2end | |
| - name: Deploy second Zenko for PRA | |
| run: bash deploy-zenko.sh end2end-pra default './configs/zenko.yaml' | |
| working-directory: ./.github/scripts/end2end | |
| - name: Add Keycloak pra user and assign StorageManager role | |
| shell: bash | |
| run: bash keycloak-helper.sh add-user default end2end-pra | |
| env: | |
| OIDC_USERNAME: 'zenko-end2end-pra' | |
| OIDC_EMAIL: 'e2e-pra@zenko.local' | |
| working-directory: ./.github/scripts/end2end | |
| - name: Configure E2E PRA test environment | |
| run: bash configure-e2e.sh end2end-pra default | |
| working-directory: ./.github/scripts/end2end | |
| env: | |
| OIDC_USERNAME: 'zenko-end2end-pra' | |
| - name: Configure E2E CTST test environment | |
| run: bash configure-e2e-ctst.sh | |
| working-directory: ./.github/scripts/end2end | |
| - name: Run CTST end to end tests | |
| run: bash .github/scripts/end2end/run-e2e-ctst.sh "@PRA" | |
| - name: Debug wait | |
| uses: ./.github/actions/debug-wait | |
| timeout-minutes: 60 | |
| if: failure() && runner.debug == '1' | |
| - name: Archive and publish artifacts | |
| uses: ./.github/actions/archive-artifacts | |
| with: | |
| user: ${{ secrets.ARTIFACTS_USER }} | |
| password: ${{ secrets.ARTIFACTS_PASSWORD }} | |
| trunk_token: ${{ secrets.TRUNK_TOKEN }} | |
| junit-paths: ${{ github.workspace }}/tests/functional/ctst/reports/*.xml | |
| if: always() | |
| end2end-2-shards-http: | |
| needs: [build-kafka, build-mongodb] | |
| runs-on: | |
| - ubuntu-24.04-8core | |
| env: | |
| MONGODB_SHARD_COUNT: 2 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| with: | |
| persist-credentials: false | |
| - name: Install dependencies | |
| uses: ./.github/actions/install-end2end-dependencies | |
| - name: Wait for Docker daemon to be ready | |
| uses: ./.github/actions/wait-docker-ready | |
| - name: Login to Registry | |
| uses: docker/login-action@v4 | |
| with: | |
| username: "${{ github.repository_owner }}" | |
| password: "${{ github.token }}" | |
| registry: ghcr.io | |
| - name: Setup Node environment | |
| id: setup-access | |
| uses: ./.github/actions/setup-node-env | |
| with: | |
| app-id: ${{ vars.ACTIONS_APP_ID }} | |
| private-key: ${{ secrets.ACTIONS_APP_PRIVATE_KEY }} | |
| repositories: | | |
| cli-testing | |
| zenko-operator | |
| - name: Deploy Zenko | |
| uses: ./.github/actions/deploy | |
| env: | |
| GIT_ACCESS_TOKEN: ${{ steps.setup-access.outputs.token }} | |
| - name: Set up e2e environment | |
| run: source .github/scripts/end2end/setup-e2e-env.sh | |
| env: | |
| SKIP_CTST: '1' | |
| - name: Run init CI test | |
| working-directory: tests/functional | |
| run: yarn run test:operator | |
| - name: Run iam policies tests | |
| working-directory: tests/functional | |
| run: yarn run test:iam_policies | |
| - name: Run cloudserver tests | |
| working-directory: tests/functional | |
| run: yarn run test:object_api | |
| - name: Run smoke tests | |
| working-directory: tests/functional | |
| run: yarn run test:smoke | |
| - name: Enable HTTPS | |
| run: bash enable-https.sh | |
| working-directory: ./.github/scripts/end2end | |
| - name: Run smoke tests (HTTPS) | |
| working-directory: tests/functional | |
| run: yarn run test:smoke | |
| - name: Debug wait | |
| uses: ./.github/actions/debug-wait | |
| timeout-minutes: 60 | |
| if: failure() && runner.debug == '1' | |
| - name: Archive and publish artifacts | |
| uses: ./.github/actions/archive-artifacts | |
| with: | |
| user: ${{ secrets.ARTIFACTS_USER }} | |
| password: ${{ secrets.ARTIFACTS_PASSWORD }} | |
| trunk_token: ${{ secrets.TRUNK_TOKEN }} | |
| if: always() | |
| end2end-sharded: | |
| needs: [build-kafka, build-mongodb] | |
| runs-on: | |
| - ubuntu-24.04-8core | |
| env: | |
| ENABLE_RING_TESTS: "true" | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| with: | |
| persist-credentials: false | |
| - name: Install dependencies | |
| uses: ./.github/actions/install-end2end-dependencies | |
| - name: Wait for Docker daemon to be ready | |
| uses: ./.github/actions/wait-docker-ready | |
| - name: Login to Registry | |
| uses: docker/login-action@v4 | |
| with: | |
| username: "${{ github.repository_owner }}" | |
| password: "${{ github.token }}" | |
| registry: ghcr.io | |
| - name: Setup Node environment | |
| id: setup-access | |
| uses: ./.github/actions/setup-node-env | |
| with: | |
| app-id: ${{ vars.ACTIONS_APP_ID }} | |
| private-key: ${{ secrets.ACTIONS_APP_PRIVATE_KEY }} | |
| repositories: | | |
| cli-testing | |
| zenko-operator | |
| metadata | |
| - name: Deploy Zenko | |
| uses: ./.github/actions/deploy | |
| env: | |
| GIT_ACCESS_TOKEN: ${{ steps.setup-access.outputs.token }} | |
| with: | |
| deploy_metadata: ${{ env.ENABLE_RING_TESTS }} | |
| - name: Set up e2e environment | |
| run: source .github/scripts/end2end/setup-e2e-env.sh | |
| env: | |
| SKIP_CTST: '1' | |
| - name: Run backbeat end to end tests | |
| working-directory: tests/functional | |
| run: | | |
| bash mocha/gcp_shim.sh | |
| yarn run test:all_extensions | |
| - name: Debug wait | |
| uses: ./.github/actions/debug-wait | |
| timeout-minutes: 60 | |
| if: failure() && runner.debug == '1' | |
| - name: Archive and publish artifacts | |
| uses: ./.github/actions/archive-artifacts | |
| with: | |
| user: ${{ secrets.ARTIFACTS_USER }} | |
| password: ${{ secrets.ARTIFACTS_PASSWORD }} | |
| trunk_token: ${{ secrets.TRUNK_TOKEN }} | |
| if: always() | |
| ctst-end2end-sharded: | |
| needs: [build-kafka, build-mongodb] | |
| runs-on: | |
| - ubuntu-24.04-8core | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| with: | |
| persist-credentials: false | |
| - name: Install dependencies | |
| uses: ./.github/actions/install-end2end-dependencies | |
| - name: Wait for Docker daemon to be ready | |
| uses: ./.github/actions/wait-docker-ready | |
| - name: Kubectl tool installer | |
| uses: Azure/setup-kubectl@v5 | |
| - name: Login to Registry | |
| uses: docker/login-action@v4 | |
| with: | |
| username: "${{ github.repository_owner }}" | |
| password: "${{ github.token }}" | |
| registry: ghcr.io | |
| - name: Setup Node environment | |
| id: setup-access | |
| uses: ./.github/actions/setup-node-env | |
| with: | |
| app-id: ${{ vars.ACTIONS_APP_ID }} | |
| private-key: ${{ secrets.ACTIONS_APP_PRIVATE_KEY }} | |
| repositories: | | |
| cli-testing | |
| zenko-operator | |
| - name: Deploy Zenko | |
| uses: ./.github/actions/deploy | |
| env: | |
| GIT_ACCESS_TOKEN: ${{ steps.setup-access.outputs.token }} | |
| ZENKO_ENABLE_SOSAPI: true | |
| TIME_PROGRESSION_FACTOR: 86400 | |
| TRANSITION_ONE_DAY_EARLIER: false | |
| EXPIRE_ONE_DAY_EARLIER: false | |
| - name: Configure E2E CTST test environment | |
| run: bash configure-e2e-ctst.sh | |
| working-directory: ./.github/scripts/end2end | |
| - name: Run CTST end to end tests | |
| run: bash .github/scripts/end2end/run-e2e-ctst.sh "@PreMerge and not @PRA" | |
| timeout-minutes: 190 | |
| - name: Debug wait | |
| uses: ./.github/actions/debug-wait | |
| timeout-minutes: 60 | |
| if: failure() && runner.debug == '1' | |
| - name: Archive and publish artifacts | |
| uses: ./.github/actions/archive-artifacts | |
| with: | |
| user: ${{ secrets.ARTIFACTS_USER }} | |
| password: ${{ secrets.ARTIFACTS_PASSWORD }} | |
| trunk_token: ${{ secrets.TRUNK_TOKEN }} | |
| junit-paths: ${{ github.workspace }}/tests/functional/ctst/reports/*.xml | |
| if: always() | |
| create-deployments: | |
| runs-on: ubuntu-24.04 | |
| outputs: | |
| environment: ${{ steps.env.outputs.environment }} | |
| target-branch: ${{ steps.env.outputs.target_branch }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| filter: blob:none | |
| - name: Determine target environment | |
| id: env | |
| env: | |
| REF_NAME: ${{ github.ref_name }} | |
| run: | | |
| base_ref=$(./.github/scripts/resolve-base-branch.sh) | |
| if [[ -n "$base_ref" ]]; then | |
| environment="zenko/$REF_NAME@${base_ref#development/}" | |
| echo "environment=$environment" >> "$GITHUB_OUTPUT" | |
| echo "target_branch=$base_ref" >> "$GITHUB_OUTPUT" | |
| echo "Target environment: $environment" | |
| else | |
| echo "No development branch ancestor found, skipping deployments" | |
| fi | |
| - name: Create transient deployments | |
| if: steps.env.outputs.environment != '' | |
| uses: ./.github/actions/create-component-deployments | |
| with: | |
| app-id: ${{ vars.ACTIONS_APP_ID }} | |
| app-private-key: ${{ secrets.ACTIONS_APP_PRIVATE_KEY }} | |
| target-branch: ${{ steps.env.outputs.target_branch }} | |
| environment: ${{ steps.env.outputs.environment }} | |
| status: in_progress | |
| transient: 'true' | |
| log-url: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} | |
| description: Zenko CI running | |
| update-deployments: | |
| runs-on: ubuntu-24.04 | |
| needs: | |
| - create-deployments | |
| - build-iso | |
| - build-kafka | |
| - end2end-2-shards-http | |
| - end2end-sharded | |
| - end2end-pra | |
| - ctst-end2end-sharded | |
| if: always() && needs.create-deployments.outputs.environment != '' | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| filter: blob:none | |
| - name: Determine CI result | |
| id: result | |
| env: | |
| NEEDS_JSON: ${{ toJSON(needs) }} | |
| run: | | |
| status=$(jq -r ' | |
| del(.["create-deployments"]) | | |
| to_entries | | |
| if any(select(.key | test("build")) | .value.result | IN("failure","cancelled")) then | |
| "error" | |
| elif any(.value.result | IN("failure","cancelled")) then | |
| "failure" | |
| else | |
| "success" | |
| end | |
| ' <<<"$NEEDS_JSON") | |
| echo "status=$status" >> "$GITHUB_OUTPUT" | |
| echo "CI result: $status" | |
| - name: Update deployment statuses | |
| uses: ./.github/actions/create-component-deployments | |
| with: | |
| app-id: ${{ vars.ACTIONS_APP_ID }} | |
| app-private-key: ${{ secrets.ACTIONS_APP_PRIVATE_KEY }} | |
| target-branch: ${{ needs.create-deployments.outputs.target-branch }} | |
| environment: ${{ needs.create-deployments.outputs.environment }} | |
| status: ${{ steps.result.outputs.status }} | |
| transient: 'true' | |
| log-url: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} | |
| description: >- | |
| Zenko CI ${{ | |
| steps.result.outputs.status == 'success' && 'passed' || | |
| steps.result.outputs.status == 'error' && 'build failed' || | |
| 'tests failed' }} | |
| write-final-status: | |
| runs-on: ubuntu-24.04 | |
| needs: | |
| - check-alerts | |
| - check-dashboards | |
| - check-scripts | |
| - check-workflows | |
| - build-doc | |
| - build-iso | |
| - build-kafka | |
| - build-mongodb | |
| - lint-functional-tests | |
| - end2end-2-shards-http | |
| - end2end-sharded | |
| - end2end-pra | |
| - ctst-end2end-sharded | |
| steps: | |
| - name: Upload final status | |
| uses: scality/actions/upload_final_status@1.9.0 | |
| with: | |
| ARTIFACTS_USER: ${{ secrets.ARTIFACTS_USER }} | |
| ARTIFACTS_PASSWORD: ${{ secrets.ARTIFACTS_PASSWORD }} | |
| JOBS_RESULTS: ${{ join(needs.*.result) }} | |
| if: always() |