Update CI workflow to use Ubuntu 22.04 with 2 cores for build jobs #5383
This file contains 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: | |
- 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 | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: '18' | |
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-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-latest | |
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: '18' | |
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' |