Skip to content

Add readPreference to MongoClient configuration and update tests to u… #5401

Add readPreference to MongoClient configuration and update tests to u…

Add readPreference to MongoClient configuration and update tests to u… #5401

Workflow file for this run

---
name: tests
env:
GINKGO_VERSION: v1.15.2
on:
push:
branches-ignore:
- development/**
- q/*/**
jobs:
build:
runs-on: ubuntu-22.04-2core
permissions:
# Need to explicitely add package write permissions for dependabot
contents: read
packages: write
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '22'
cache: yarn
- name: Set up Docker Buildk
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 kafka
uses: docker/build-push-action@v5
with:
push: true
context: .github/dockerfiles/kafka
tags: ghcr.io/${{ github.repository }}/ci-kafka:${{ github.sha }}
cache-from: type=gha,scope=ci-kafka
cache-to: type=gha,mode=max,scope=ci-kafka
- name: Build and push syntheticbucketd
uses: docker/build-push-action@v5
with:
push: true
context: .
file: .github/dockerfiles/syntheticbucketd/Dockerfile
tags: ghcr.io/${{ github.repository }}/syntheticbucketd:${{ github.sha }}
cache-from: type=gha,scope=syntheticbucketd
cache-to: type=gha,mode=max,scope=syntheticbucketd
- name: Build and push MongoDB
uses: docker/build-push-action@v5
with:
push: true
context: .github/dockerfiles/mongodb
tags: ghcr.io/${{ github.repository }}/ci-mongodb:${{ github.sha }}
cache-from: type=gha,scope=ci-mongodb
cache-to: type=gha,mode=max,scope=ci-mongodb
bucket-scanner:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '22'
cache: yarn
- 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@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
directory: bucket-scanner
flags: bucket-scanner
tests:
needs: build
runs-on: ubuntu-22.04-2core
services:
redis:
image: redis:alpine
ports:
- 6379:6379
syntheticbucketd:
image: ghcr.io/${{ github.repository }}/syntheticbucketd:${{ github.sha }}
ports:
- 9001:9001
kafka:
image: ghcr.io/${{ github.repository }}/ci-kafka:${{ github.sha }}
credentials:
username: ${{ github.repository_owner }}
password: ${{ github.token }}
ports:
- 2181:2181
- 9092:9092
env:
ADVERTISED_HOST: "localhost"
ADVERTISED_PORT: 9092
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@v4
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
- name: Run unit tests
run: yarn run cover:test
env:
BACKBEAT_CONFIG_FILE: tests/config.json
- uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
directory: ./coverage/test
flags: unit
- name: Run backbeat routes test
uses: ./.github/actions/ft-test
with:
testsuite: api:routes
token: ${{ secrets.CODECOV_TOKEN }}
runner: run_server_tests.bash
env:
MANAGEMENT_BACKEND: operator
- name: Run backbeat retry tests with account authentication
uses: ./.github/actions/ft-test
with:
testsuite: api:retry
token: ${{ secrets.CODECOV_TOKEN }}
runner: run_server_tests.bash
- name: run feature replication tests
uses: ./.github/actions/ft-test
with:
testsuite: replication
token: ${{ secrets.CODECOV_TOKEN }}
- name: run feature lifecycle tests
uses: ./.github/actions/ft-test
with:
testsuite: lifecycle
token: ${{ secrets.CODECOV_TOKEN }}
- name: run feature ingestion tests
uses: ./.github/actions/ft-test
with:
testsuite: ingestion
token: ${{ secrets.CODECOV_TOKEN }}
- name: run misc functional tests
uses: ./.github/actions/ft-test
with:
testsuite: lib
token: ${{ secrets.CODECOV_TOKEN }}
- name: run backbeat notification feature tests
uses: ./.github/actions/ft-test
with:
testsuite: notification
token: ${{ secrets.CODECOV_TOKEN }}
- name: run ballooning tests for lifecycle conductor
run: yarn mocha tests/performance/lifecycle/conductor-check-memory-balloon.js
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'