1717 # Need to explicitely add package write permissions for dependabot
1818 contents : read
1919 packages : write
20+ strategy :
21+ matrix :
22+ include :
23+ - name : ci-kafka
24+ context : .github/dockerfiles/kafka
25+ file : " "
26+ - name : syntheticbucketd
27+ context : .
28+ file : .github/dockerfiles/syntheticbucketd/Dockerfile
29+ - name : ci-mongodb
30+ context : .github/dockerfiles/mongodb
31+ file : " "
2032 steps :
2133 - name : Checkout
2234 uses : actions/checkout@v4
2638 node-version : ' 22'
2739 cache : yarn
2840
29- - name : Set up Docker Buildk
41+ - name : Set up Docker Buildx
3042 uses : docker/setup-buildx-action@v3
3143
3244 - name : Login to Registry
@@ -36,33 +48,15 @@ jobs:
3648 username : ${{ github.repository_owner }}
3749 password : ${{ github.token }}
3850
39- - name : Build and push kafka
40- uses : docker/build-push-action@v6
41- with :
42- push : true
43- context : .github/dockerfiles/kafka
44- tags : ghcr.io/${{ github.repository }}/ci-kafka:${{ github.sha }}
45- cache-from : type=gha,scope=ci-kafka
46- cache-to : type=gha,mode=max,scope=ci-kafka
47-
48- - name : Build and push syntheticbucketd
49- uses : docker/build-push-action@v6
50- with :
51- push : true
52- context : .
53- file : .github/dockerfiles/syntheticbucketd/Dockerfile
54- tags : ghcr.io/${{ github.repository }}/syntheticbucketd:${{ github.sha }}
55- cache-from : type=gha,scope=syntheticbucketd
56- cache-to : type=gha,mode=max,scope=syntheticbucketd
57-
58- - name : Build and push MongoDB
51+ - name : Build and push ${{ matrix.name }}
5952 uses : docker/build-push-action@v6
6053 with :
6154 push : true
62- context : .github/dockerfiles/mongodb
63- tags : ghcr.io/${{ github.repository }}/ci-mongodb:${{ github.sha }}
64- cache-from : type=gha,scope=ci-mongodb
65- cache-to : type=gha,mode=max,scope=ci-mongodb
55+ context : ${{ matrix.context }}
56+ file : ${{ matrix.file || format('{0}/Dockerfile', matrix.context) }}
57+ tags : ghcr.io/${{ github.repository }}/${{ matrix.name }}:${{ github.sha }}
58+ cache-from : type=gha,scope=${{ matrix.name }}
59+ cache-to : type=gha,mode=max,scope=${{ matrix.name }}
6660
6761 bucket-scanner :
6862 runs-on : ubuntu-latest
9690 directory : bucket-scanner
9791 flags : bucket-scanner
9892
99- tests :
93+ lint-and-unit :
10094 needs : build
10195 runs-on : ubuntu-latest
10296 services :
@@ -151,51 +145,111 @@ jobs:
151145 directory : ./coverage/test
152146 flags : unit
153147
154- - name : Run backbeat routes test
155- uses : ./.github/actions/ft-test
156- with :
157- testsuite : api:routes
158- token : ${{ secrets.CODECOV_TOKEN }}
159- runner : run_server_tests.bash
160- env :
161- MANAGEMENT_BACKEND : operator
162-
163- - name : Run backbeat retry tests with account authentication
164- uses : ./.github/actions/ft-test
165- with :
166- testsuite : api:retry
167- token : ${{ secrets.CODECOV_TOKEN }}
168- runner : run_server_tests.bash
169-
170- - name : run feature replication tests
171- uses : ./.github/actions/ft-test
172- with :
173- testsuite : replication
174- token : ${{ secrets.CODECOV_TOKEN }}
175-
176- - name : run feature lifecycle tests
177- uses : ./.github/actions/ft-test
178- with :
179- testsuite : lifecycle
180- token : ${{ secrets.CODECOV_TOKEN }}
181-
182- - name : run feature ingestion tests
183- uses : ./.github/actions/ft-test
148+ functional-tests :
149+ needs : build
150+ runs-on : ubuntu-latest
151+ strategy :
152+ fail-fast : false
153+ matrix :
154+ include :
155+ - testsuite : api:routes
156+ runner : run_server_tests.bash
157+ env :
158+ MANAGEMENT_BACKEND : operator
159+ - testsuite : api:retry
160+ runner : run_server_tests.bash
161+ - testsuite : replication
162+ runner : run_ft_tests.bash
163+ - testsuite : lifecycle
164+ runner : run_ft_tests.bash
165+ - testsuite : ingestion
166+ runner : run_ft_tests.bash
167+ - testsuite : lib
168+ runner : run_ft_tests.bash
169+ - testsuite : notification
170+ runner : run_ft_tests.bash
171+ services :
172+ redis :
173+ image : redis:alpine
174+ ports :
175+ - 6379:6379
176+ syntheticbucketd :
177+ image : ghcr.io/${{ github.repository }}/syntheticbucketd:${{ github.sha }}
178+ ports :
179+ - 9001:9001
180+ kafka :
181+ image : ghcr.io/${{ github.repository }}/ci-kafka:${{ github.sha }}
182+ credentials :
183+ username : ${{ github.repository_owner }}
184+ password : ${{ github.token }}
185+ ports :
186+ - 2181:2181
187+ - 9092:9092
188+ env :
189+ ADVERTISED_HOST : " localhost"
190+ ADVERTISED_PORT : 9092
191+ mongo :
192+ image : ghcr.io/${{ github.repository}}/ci-mongodb:${{ github.sha }}
193+ ports :
194+ - 27017:27017
195+ - 27018:27018
196+ - 27019:27019
197+ steps :
198+ - name : Checkout
199+ uses : actions/checkout@v4
200+ - uses : actions/setup-node@v4
184201 with :
185- testsuite : ingestion
186- token : ${{ secrets.CODECOV_TOKEN }}
202+ node-version : ' 22'
203+ cache : yarn
204+ - name : Install node dependencies
205+ run : yarn install --ignore-engines --frozen-lockfile --network-concurrency 1
187206
188- - name : run misc functional tests
207+ - name : Run ${{ matrix.testsuite }} tests
189208 uses : ./.github/actions/ft-test
190209 with :
191- testsuite : lib
210+ testsuite : ${{ matrix.testsuite }}
192211 token : ${{ secrets.CODECOV_TOKEN }}
212+ runner : ${{ matrix.runner }}
213+ env : ${{ matrix.env != '' && matrix.env || toJSON('{}') }}
193214
194- - name : run backbeat notification feature tests
195- uses : ./.github/actions/ft-test
215+ ft-ballooning :
216+ needs : build
217+ runs-on : ubuntu-latest
218+ services :
219+ redis :
220+ image : redis:alpine
221+ ports :
222+ - 6379:6379
223+ syntheticbucketd :
224+ image : ghcr.io/${{ github.repository }}/syntheticbucketd:${{ github.sha }}
225+ ports :
226+ - 9001:9001
227+ kafka :
228+ image : ghcr.io/${{ github.repository }}/ci-kafka:${{ github.sha }}
229+ credentials :
230+ username : ${{ github.repository_owner }}
231+ password : ${{ github.token }}
232+ ports :
233+ - 2181:2181
234+ - 9092:9092
235+ env :
236+ ADVERTISED_HOST : " localhost"
237+ ADVERTISED_PORT : 9092
238+ mongo :
239+ image : ghcr.io/${{ github.repository}}/ci-mongodb:${{ github.sha }}
240+ ports :
241+ - 27017:27017
242+ - 27018:27018
243+ - 27019:27019
244+ steps :
245+ - name : Checkout
246+ uses : actions/checkout@v4
247+ - uses : actions/setup-node@v4
196248 with :
197- testsuite : notification
198- token : ${{ secrets.CODECOV_TOKEN }}
249+ node-version : ' 22'
250+ cache : yarn
251+ - name : Install node dependencies
252+ run : yarn install --ignore-engines --frozen-lockfile --network-concurrency 1
199253
200254 - name : run ballooning tests for lifecycle conductor
201255 run : yarn mocha tests/performance/lifecycle/conductor-check-memory-balloon.js --exit
0 commit comments