-
Notifications
You must be signed in to change notification settings - Fork 19
158 lines (148 loc) · 4.97 KB
/
tests.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
---
name: tests
env:
GINKGO_VERSION: v1.15.2
on:
push:
branches-ignore:
- development/**
- q/*/**
jobs:
build:
runs-on: ubuntu-latest
permissions:
# Need to explicitely add package write permissions for dependabot
contents: read
packages: write
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up Docker Buildk
uses: docker/setup-buildx-action@v2
with:
buildkitd-flags: --debug
- name: Login to Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push kafka
uses: docker/build-push-action@v4
with:
push: true
context: .github/dockerfiles/kafka
tags: "ghcr.io/scality/backbeat/ci-kafka:${{ github.sha }}"
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Build and push syntheticbucketd
uses: docker/build-push-action@v4
with:
push: true
context: .
file: .github/dockerfiles/syntheticbucketd/Dockerfile
tags: "ghcr.io/scality/backbeat/syntheticbucketd:${{ github.sha }}"
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Build and push MongoDB
uses: docker/build-push-action@v2
with:
push: true
context: .github/dockerfiles/mongodb
tags: "ghcr.io/scality/backbeat/ci-mongodb:${{ github.sha }}"
cache-from: type=gha
cache-to: type=gha,mode=max
tests:
needs: build
runs-on: ubuntu-latest
services:
redis:
image: redis:alpine
ports:
- 6379:6379
syntheticbucketd:
image: ghcr.io/scality/backbeat/syntheticbucketd:${{ github.sha }}
ports:
- 9001:9001
kafka:
image: ghcr.io/scality/backbeat/ci-kafka:${{ github.sha }}
credentials:
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
ports:
- 2181:2181
- 9092:9092
env:
ADVERTISED_HOST: "localhost"
ADVERTISED_PORT: 9092
mongo:
image: ghcr.io/scality/backbeat/ci-mongodb:${{ github.sha }}
ports:
- 27017:27017
- 27018:27018
- 27019:27019
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install build dependencies
run: |
sudo apt-get update
sudo apt-get install -y build-essential libzstd-dev
- uses: actions/setup-go@v4
with:
go-version: '1.16.2'
- uses: actions/setup-node@v2
with:
node-version: '16'
cache: yarn
- name: Install node dependencies
run: yarn install --ignore-engines --frozen-lockfile --network-concurrency 1
- name: Install ginkgo
run: go get github.com/onsi/ginkgo/ginkgo@${GINKGO_VERSION}
- name: Lint markdown
run: yarn run --silent lint_md
- name: Lint Javascript
run: yarn run --silent lint
- name: Run unit tests
run: yarn test
env:
BACKBEAT_CONFIG_FILE: tests/config.json
- name: Run bucket scanner unit tests
run: ginkgo -r --randomizeAllSpecs --randomizeSuites --failOnPending --cover --trace --race --progress -nodes 1 -stream -timeout 5m -slowSpecThreshold 60
working-directory: bucket-scanner
- name: Run backbeat routes test
run: .github/scripts/run_server_tests.bash ft_test:api:routes
env:
BACKBEAT_CONFIG_FILE: "tests/config.json"
MANAGEMENT_BACKEND: operator
- name: Run backbeat retry tests with account authentication
run: .github/scripts/run_server_tests.bash ft_test:api:retry
env:
BACKBEAT_CONFIG_FILE: "tests/config.json"
- name: run feature replication tests
run: .github/scripts/run_ft_tests.bash ft_test:replication
env:
BACKBEAT_CONFIG_FILE: "tests/config.json"
- name: run feature lifecycle tests
run: .github/scripts/run_ft_tests.bash ft_test:lifecycle
env:
EXPIRE_ONE_DAY_EARLIER: "true"
TRANSITION_ONE_DAY_EARLIER: "true"
BACKBEAT_CONFIG_FILE: "tests/config.json"
- name: run feature ingestion tests
run: .github/scripts/run_ft_tests.bash ft_test:ingestion
env:
BACKBEAT_CONFIG_FILE: "tests/config.json"
- name: run misc functional tests
run: .github/scripts/run_ft_tests.bash ft_test:lib
env:
BACKBEAT_CONFIG_FILE: "tests/config.json"
- name: run backbeat notification feature tests
run: yarn run ft_test:notification
- 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'