fix(deps): set node-rdkafka floor to ^3.6.0 #6970
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: tests | |
| env: | |
| GINKGO_VERSION: v1.15.2 | |
| on: | |
| push: | |
| branches-ignore: | |
| - q/*/** | |
| jobs: | |
| build: | |
| name: build ${{ matrix.name }} | |
| runs-on: ubuntu-latest | |
| permissions: | |
| # Need to explicitely add package write permissions for dependabot | |
| contents: read | |
| packages: write | |
| strategy: | |
| matrix: | |
| include: | |
| - name: ci-kafka | |
| context: .github/dockerfiles/kafka | |
| file: "" | |
| - name: syntheticbucketd | |
| context: . | |
| file: .github/dockerfiles/syntheticbucketd/Dockerfile | |
| - name: ci-mongodb | |
| context: .github/dockerfiles/mongodb | |
| file: "" | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Login to Registry | |
| uses: docker/login-action@v3 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.repository_owner }} | |
| password: ${{ github.token }} | |
| - name: Build and push ${{ matrix.name }} | |
| uses: docker/build-push-action@v6 | |
| with: | |
| push: true | |
| context: ${{ matrix.context }} | |
| file: ${{ matrix.file || format('{0}/Dockerfile', matrix.context) }} | |
| tags: ghcr.io/${{ github.repository }}/${{ matrix.name }}:${{ github.sha }} | |
| cache-from: type=gha,scope=${{ matrix.name }} | |
| cache-to: type=gha,mode=max,scope=${{ matrix.name }} | |
| bucket-scanner: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version: '1.16.2' | |
| cache-dependency-path: bucket-scanner/go.sum | |
| - name: Install ginkgo | |
| run: go get github.com/onsi/ginkgo/ginkgo@${GINKGO_VERSION} | |
| - name: Run bucket scanner unit tests | |
| run: >- | |
| ginkgo -r --randomizeAllSpecs --randomizeSuites --failOnPending --progress \ | |
| --cover --trace --race --covermode=atomic --coverprofile=coverage.out \ | |
| -nodes 1 -stream -timeout 5m -slowSpecThreshold 60 | |
| working-directory: bucket-scanner | |
| - uses: codecov/codecov-action@v5 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| directory: bucket-scanner | |
| flags: bucket-scanner | |
| lint: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: '22' | |
| cache: yarn | |
| - name: Install node dependencies | |
| run: yarn install --ignore-engines --frozen-lockfile --network-concurrency 1 | |
| - name: Lint markdown | |
| run: yarn run --silent lint_md | |
| - name: Lint Javascript | |
| run: yarn run --silent lint | |
| unit: | |
| needs: build | |
| runs-on: ubuntu-latest | |
| services: | |
| redis: | |
| image: redis:alpine | |
| ports: | |
| - 6379:6379 | |
| zookeeper: | |
| image: zookeeper:3.9.4 | |
| ports: | |
| - 2181:2181 | |
| env: | |
| ZOOKEEPER_CLIENT_PORT: 2181 | |
| ZOOKEEPER_TICK_TIME: 2000 | |
| kafka: | |
| image: ghcr.io/${{ github.repository }}/ci-kafka:${{ github.sha }} | |
| credentials: | |
| username: ${{ github.repository_owner }} | |
| password: ${{ github.token }} | |
| ports: | |
| - 9092:9092 | |
| env: | |
| KAFKA_BROKER_ID: 1 | |
| KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 | |
| KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092 | |
| KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092 | |
| KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 | |
| mongo: | |
| image: ghcr.io/${{ github.repository}}/ci-mongodb:${{ github.sha }} | |
| ports: | |
| - 27017:27017 | |
| - 27018:27018 | |
| - 27019:27019 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: '22' | |
| cache: yarn | |
| - name: Install node dependencies | |
| run: yarn install --ignore-engines --frozen-lockfile --network-concurrency 1 | |
| - name: Run unit tests | |
| run: yarn run cover | |
| env: | |
| BACKBEAT_CONFIG_FILE: tests/config.json | |
| TEST_SUITE: test | |
| - uses: codecov/codecov-action@v5 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| directory: ./coverage/test | |
| flags: unit | |
| functional-tests: | |
| needs: build | |
| name: ${{ matrix.testsuite }} tests | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - testsuite: api:routes | |
| runner: run_server_tests.bash | |
| env: | |
| MANAGEMENT_BACKEND: operator | |
| - testsuite: api:retry | |
| runner: run_server_tests.bash | |
| - testsuite: replication | |
| runner: run_ft_tests.bash | |
| - testsuite: lifecycle | |
| runner: run_ft_tests.bash | |
| - testsuite: ingestion | |
| runner: run_ft_tests.bash | |
| - testsuite: lib | |
| runner: run_ft_tests.bash | |
| - testsuite: notification | |
| runner: run_ft_tests.bash | |
| - testsuite: oplogPopulator | |
| runner: run_ft_tests.bash | |
| services: | |
| redis: | |
| image: redis:alpine | |
| ports: | |
| - 6379:6379 | |
| syntheticbucketd: | |
| image: ghcr.io/${{ github.repository }}/syntheticbucketd:${{ github.sha }} | |
| ports: | |
| - 9001:9001 | |
| zookeeper: | |
| image: zookeeper:3.9.4 | |
| ports: | |
| - 2181:2181 | |
| env: | |
| ZOOKEEPER_CLIENT_PORT: 2181 | |
| ZOOKEEPER_TICK_TIME: 2000 | |
| kafka: | |
| image: ghcr.io/${{ github.repository }}/ci-kafka:${{ github.sha }} | |
| credentials: | |
| username: ${{ github.repository_owner }} | |
| password: ${{ github.token }} | |
| ports: | |
| - 9092:9092 | |
| env: | |
| KAFKA_BROKER_ID: 1 | |
| KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 | |
| KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092 | |
| KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092 | |
| KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 | |
| mongo: | |
| image: ghcr.io/${{ github.repository}}/ci-mongodb:${{ github.sha }} | |
| ports: | |
| - 27017:27017 | |
| - 27018:27018 | |
| - 27019:27019 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: '22' | |
| cache: yarn | |
| - name: Install node dependencies | |
| run: yarn install --ignore-engines --frozen-lockfile --network-concurrency 1 | |
| - name: Wait for services | |
| run: | | |
| echo "Waiting for Kafka..." | |
| timeout 60 bash -c 'until nc -z localhost 9092; do sleep 1; done' | |
| echo "Waiting for Zookeeper..." | |
| timeout 60 bash -c 'until nc -z localhost 2181; do sleep 1; done' | |
| echo "Waiting for Redis..." | |
| timeout 60 bash -c 'until nc -z localhost 6379; do sleep 1; done' | |
| echo "Waiting for MongoDB..." | |
| timeout 60 bash -c 'until nc -z localhost 27017; do sleep 1; done' | |
| echo "All services ready" | |
| - name: Run ${{ matrix.testsuite }} tests | |
| uses: ./.github/actions/ft-test | |
| with: | |
| testsuite: ${{ matrix.testsuite }} | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| runner: ${{ matrix.runner }} | |
| env: ${{ matrix.env || fromJSON('{}') }} | |
| ft-ballooning: | |
| needs: build | |
| runs-on: ubuntu-latest | |
| services: | |
| redis: | |
| image: redis:alpine | |
| ports: | |
| - 6379:6379 | |
| syntheticbucketd: | |
| image: ghcr.io/${{ github.repository }}/syntheticbucketd:${{ github.sha }} | |
| ports: | |
| - 9001:9001 | |
| zookeeper: | |
| image: zookeeper:3.9.4 | |
| ports: | |
| - 2181:2181 | |
| env: | |
| ZOOKEEPER_CLIENT_PORT: 2181 | |
| ZOOKEEPER_TICK_TIME: 2000 | |
| kafka: | |
| image: ghcr.io/${{ github.repository }}/ci-kafka:${{ github.sha }} | |
| credentials: | |
| username: ${{ github.repository_owner }} | |
| password: ${{ github.token }} | |
| ports: | |
| - 9092:9092 | |
| env: | |
| KAFKA_BROKER_ID: 1 | |
| KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 | |
| KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092 | |
| KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092 | |
| KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 | |
| mongo: | |
| image: ghcr.io/${{ github.repository}}/ci-mongodb:${{ github.sha }} | |
| ports: | |
| - 27017:27017 | |
| - 27018:27018 | |
| - 27019:27019 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: '22' | |
| cache: yarn | |
| - name: Install node dependencies | |
| run: yarn install --ignore-engines --frozen-lockfile --network-concurrency 1 | |
| - name: run ballooning tests for lifecycle conductor | |
| run: yarn mocha tests/performance/lifecycle/conductor-check-memory-balloon.js --exit | |
| env: | |
| # Constrain heap long-lived heap size to 150MB, so that pushing 200K messages | |
| # will crash if they end up in memory all at the same time (circuit breaking | |
| # ineffective) while waiting to be committed to the kafka topic. | |
| NODE_OPTIONS: '--max-old-space-size=150' | |
| - name: Debug wait | |
| uses: scality/actions/action-ssh-to-runner@1.8.0 | |
| with: | |
| 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 }} | |
| continue-on-error: true | |
| timeout-minutes: 60 | |
| if: failure() && runner.debug == '1' | |
| queue-populator: | |
| needs: build | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| profile: [ 's3c' ] | |
| cloudserver_tag: [ '9.0.19' ] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: '22' | |
| cache: yarn | |
| - name: Install node dependencies | |
| run: yarn install --ignore-engines --frozen-lockfile --network-concurrency 1 | |
| - name: Login to Registry | |
| uses: docker/login-action@v3 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.repository_owner }} | |
| password: ${{ github.token }} | |
| - name: Setup services | |
| env: | |
| KAFKA_IMAGE: ghcr.io/${{ github.repository }}/ci-kafka:${{ github.sha }} | |
| REDIS_IMAGE: redis:alpine | |
| METADATA_IMAGE: ghcr.io/scality/metadata:7.70.45-standalone | |
| CLOUDSERVER_IMAGE: ghcr.io/scality/cloudserver:${{ matrix.cloudserver_tag }} | |
| run: |- | |
| set -e -o pipefail; | |
| docker compose --profile ${{ matrix.profile }} up -d --quiet-pull --wait | |
| working-directory: .github/dockerfiles/ft | |
| - name: Create Zookeeper paths for tests with metadata | |
| run: |- | |
| # Setup zookeeper paths for backbeat like we do in federation | |
| docker exec ft-kafka-1 /opt/kafka/bin/zookeeper-shell.sh zookeeper:2181 create /backbeat "" | |
| docker exec ft-kafka-1 /opt/kafka/bin/zookeeper-shell.sh zookeeper:2181 create /backbeat/replication-populator "" | |
| docker exec ft-kafka-1 /opt/kafka/bin/zookeeper-shell.sh zookeeper:2181 create /backbeat/replication-populator/raft-id-dispatcher "" | |
| docker exec ft-kafka-1 /opt/kafka/bin/zookeeper-shell.sh zookeeper:2181 create /backbeat/replication-populator/raft-id-dispatcher/owners "" | |
| docker exec ft-kafka-1 /opt/kafka/bin/zookeeper-shell.sh zookeeper:2181 create /backbeat/replication-populator/raft-id-dispatcher/leaders "" | |
| docker exec ft-kafka-1 /opt/kafka/bin/zookeeper-shell.sh zookeeper:2181 create /backbeat/replication-populator/raft-id-dispatcher/provisions "" | |
| # provision raft ids, we configure 4 raft sessions in metadata config | |
| docker exec ft-kafka-1 /opt/kafka/bin/zookeeper-shell.sh zookeeper:2181 create /backbeat/replication-populator/raft-id-dispatcher/provisions/0 "" | |
| docker exec ft-kafka-1 /opt/kafka/bin/zookeeper-shell.sh zookeeper:2181 create /backbeat/replication-populator/raft-id-dispatcher/provisions/1 "" | |
| docker exec ft-kafka-1 /opt/kafka/bin/zookeeper-shell.sh zookeeper:2181 create /backbeat/replication-populator/raft-id-dispatcher/provisions/2 "" | |
| docker exec ft-kafka-1 /opt/kafka/bin/zookeeper-shell.sh zookeeper:2181 create /backbeat/replication-populator/raft-id-dispatcher/provisions/3 "" | |
| if: ${{ matrix.profile == 's3c' }} | |
| - name: Run QueuePopulator functional tests | |
| env: | |
| PROFILE: ${{ matrix.profile }} | |
| TEST_SUITE: ft_test:queuepopulator | |
| run: yarn run cover | |
| - uses: codecov/codecov-action@v4 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| directory: ./coverage/ft_test:queuepopulator | |
| flags: ft_test:queuepopulator | |
| - name: Debug wait | |
| uses: scality/actions/action-ssh-to-runner@1.8.0 | |
| with: | |
| 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 }} | |
| continue-on-error: true | |
| timeout-minutes: 60 | |
| if: failure() && runner.debug == '1' |