Skip to content

Commit 7e3bd5d

Browse files
committed
Add ARM64 architecture support to integration tests
This commit adds ARM64 runner support to the CI pipeline to ensure integration tests run on both amd64 and arm64 architectures, as ARM64 images are widely used in production. Changes: - Add matrix strategy to integration job with separate runners for amd64 (ubuntu-24.04) and arm64 (ubuntu-24.04-arm) - Dynamically set CORTEX_IMAGE based on matrix.arch variable - Add matrix strategy to integration-configs-db job for both architectures - Add appropriate timeouts to accommodate ARM64 test execution times - Set fail-fast: false to ensure all architecture tests complete All existing amd64 tests remain unchanged, and ARM64 tests use the same test suites with architecture-appropriate Docker images. Fixes #6897
1 parent 275a9de commit 7e3bd5d

File tree

1 file changed

+66
-13
lines changed

1 file changed

+66
-13
lines changed

.github/workflows/test-build-deploy.yml

Lines changed: 66 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -152,19 +152,60 @@ jobs:
152152

153153
integration:
154154
needs: build
155-
runs-on: ubuntu-24.04
155+
runs-on: ${{ matrix.runner }}
156+
timeout-minutes: 50
156157
strategy:
157158
fail-fast: false
158159
matrix:
159-
tags:
160-
- requires_docker
161-
- integration_alertmanager
162-
- integration_backward_compatibility
163-
- integration_memberlist
164-
- integration_querier
165-
- integration_ruler
166-
- integration_query_fuzz
167-
- integration_remote_write_v2
160+
include:
161+
- runner: ubuntu-24.04
162+
arch: amd64
163+
tags: requires_docker
164+
- runner: ubuntu-24.04
165+
arch: amd64
166+
tags: integration_alertmanager
167+
- runner: ubuntu-24.04
168+
arch: amd64
169+
tags: integration_backward_compatibility
170+
- runner: ubuntu-24.04
171+
arch: amd64
172+
tags: integration_memberlist
173+
- runner: ubuntu-24.04
174+
arch: amd64
175+
tags: integration_querier
176+
- runner: ubuntu-24.04
177+
arch: amd64
178+
tags: integration_ruler
179+
- runner: ubuntu-24.04
180+
arch: amd64
181+
tags: integration_query_fuzz
182+
- runner: ubuntu-24.04
183+
arch: amd64
184+
tags: integration_remote_write_v2
185+
- runner: ubuntu-24.04-arm
186+
arch: arm64
187+
tags: requires_docker
188+
- runner: ubuntu-24.04-arm
189+
arch: arm64
190+
tags: integration_alertmanager
191+
- runner: ubuntu-24.04-arm
192+
arch: arm64
193+
tags: integration_backward_compatibility
194+
- runner: ubuntu-24.04-arm
195+
arch: arm64
196+
tags: integration_memberlist
197+
- runner: ubuntu-24.04-arm
198+
arch: arm64
199+
tags: integration_querier
200+
- runner: ubuntu-24.04-arm
201+
arch: arm64
202+
tags: integration_ruler
203+
- runner: ubuntu-24.04-arm
204+
arch: arm64
205+
tags: integration_query_fuzz
206+
- runner: ubuntu-24.04-arm
207+
arch: arm64
208+
tags: integration_remote_write_v2
168209
steps:
169210
- name: Upgrade golang
170211
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0
@@ -220,19 +261,29 @@ jobs:
220261
env:
221262
TEST_TAGS: ${{ matrix.tags }}
222263
- name: Integration Tests
264+
timeout-minutes: 45
223265
run: |
224266
export CORTEX_IMAGE_PREFIX="${IMAGE_PREFIX:-quay.io/cortexproject/}"
225267
export IMAGE_TAG=$(make image-tag)
226-
export CORTEX_IMAGE="${CORTEX_IMAGE_PREFIX}cortex:$IMAGE_TAG-amd64"
268+
export CORTEX_IMAGE="${CORTEX_IMAGE_PREFIX}cortex:${IMAGE_TAG}-${{ matrix.arch }}"
227269
export CORTEX_CHECKOUT_DIR="/go/src/github.com/cortexproject/cortex"
228-
echo "Running integration tests with image: $CORTEX_IMAGE"
270+
echo "Running integration tests on ${{ matrix.arch }} with image: ${CORTEX_IMAGE}"
229271
go test -tags=slicelabels,integration,${{ matrix.tags }} -timeout 2400s -v -count=1 ./integration/...
230272
env:
231273
IMAGE_PREFIX: ${{ secrets.IMAGE_PREFIX }}
232274

233275
integration-configs-db:
234276
needs: build
235-
runs-on: ubuntu-24.04
277+
runs-on: ${{ matrix.runner }}
278+
timeout-minutes: 20
279+
strategy:
280+
fail-fast: false
281+
matrix:
282+
include:
283+
- runner: ubuntu-24.04
284+
arch: amd64
285+
- runner: ubuntu-24.04-arm
286+
arch: arm64
236287
steps:
237288
- name: Checkout Repo
238289
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
@@ -245,10 +296,12 @@ jobs:
245296
- name: Extract Docker Images Archive
246297
run: tar -xvf images.tar -C /
247298
- name: Run Integration Configs Tests
299+
timeout-minutes: 15
248300
# Github Actions does not support TTY in their default runners yet
249301
run: |
250302
touch build-image/.uptodate
251303
MIGRATIONS_DIR=$(pwd)/cmd/cortex/migrations
304+
echo "Running configs integration tests on ${{ matrix.arch }}"
252305
make BUILD_IMAGE=quay.io/cortexproject/build-image:master-59491e9aae TTY='' configs-integration-test
253306
254307
deploy_website:

0 commit comments

Comments
 (0)