Skip to content

Commit 2a6b7ef

Browse files
amartinezfayotjons
authored andcommitted
Add ARM64 support for integration tests in GitHub workflows (spiffe#6059)
* Add ARM64 support for integration tests on GitHub workflows Signed-off-by: Agustín Martínez Fayó <[email protected]>
1 parent dadc3d8 commit 2a6b7ef

File tree

2 files changed

+54
-26
lines changed

2 files changed

+54
-26
lines changed

.github/workflows/pr_build.yaml

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -239,10 +239,9 @@ jobs:
239239
outputs:
240240
test: ${{ steps.set-matrix.outputs.test }}
241241

242-
243242
integration:
244-
name: integration (linux)
245-
runs-on: ubuntu-22.04
243+
name: integration (${{ matrix.arch }}) (${{ strategy.job-index}}/${{ strategy.job-total }})
244+
runs-on: ${{ matrix.runs-on }}
246245
needs: [cache-deps, images]
247246
timeout-minutes: 45
248247

@@ -252,8 +251,14 @@ jobs:
252251
strategy:
253252
fail-fast: false
254253
matrix:
255-
num_runners: [5]
256-
runner_id: [1, 2, 3, 4, 5]
254+
arch: [x64, arm64]
255+
num_runners: [10]
256+
runner_id: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
257+
include:
258+
- arch: x64
259+
runs-on: ubuntu-22.04
260+
- arch: arm64
261+
runs-on: ubuntu-22.04-arm
257262
steps:
258263
- name: Checkout
259264
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
@@ -294,13 +299,12 @@ jobs:
294299
THIS_RUNNER: ${{ matrix.runner_id }}
295300
TERM: dumb
296301
CICD_TARGET_BRANCH: ${{ github.event.pull_request.base.ref }}
302+
IGNORE_SUITES: ${{ matrix.arch == 'arm64' && 'suites/upstream-authority-ejbca' || '' }} # Waiting for EJBCA to support arm64 (https://github.com/spiffe/spire/issues/6060)
297303
run: ./.github/workflows/scripts/split.sh | xargs ./test/integration/test.sh
298304

299-
300-
301305
integration-k8s:
302-
name: integration-k8s
303-
runs-on: ubuntu-22.04
306+
name: integration-k8s-${{ matrix.test[0] }}-${{ matrix.arch }}
307+
runs-on: ${{ matrix.runs-on }}
304308
needs: [cache-deps, images, build-matrix]
305309
timeout-minutes: 45
306310

@@ -310,10 +314,18 @@ jobs:
310314
strategy:
311315
fail-fast: false
312316
matrix:
313-
num_runners: [1]
314-
runner_id: [1]
315-
#Test elements should be added as [KubeCTLVersion, K8s-image, KindVersion]
316-
test: ${{ fromJson(needs.build-matrix.outputs.test) }}
317+
arch: [x64, arm64]
318+
include:
319+
- arch: x64
320+
runs-on: ubuntu-22.04
321+
num_runners: 1
322+
runner_id: 1
323+
- arch: arm64
324+
runs-on: ubuntu-22.04-arm
325+
num_runners: 1
326+
runner_id: 1
327+
#Test elements should be added as [KubeCTLVersion, K8s-image, KindVersion]
328+
test: ${{ fromJson(needs.build-matrix.outputs.test) }}
317329
steps:
318330
- name: Checkout
319331
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
@@ -591,7 +603,7 @@ jobs:
591603

592604
success:
593605
runs-on: ubuntu-22.04
594-
needs: [lint, unit-test, unit-test-race-detector, artifacts, integration, lint-windows, unit-test-windows, artifacts-windows, integration-windows]
606+
needs: [lint, unit-test, unit-test-race-detector, artifacts, integration, integration-k8s, lint-windows, unit-test-windows, artifacts-windows, integration-windows]
595607
timeout-minutes: 30
596608
permissions:
597609
contents: read

.github/workflows/release_build.yaml

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -225,18 +225,25 @@ jobs:
225225
test: ${{ steps.set-matrix.outputs.test }}
226226

227227
integration:
228-
name: integration (linux)
229-
runs-on: ubuntu-22.04
228+
name: integration (${{ matrix.arch }}) (${{ strategy.job-index}}/${{ strategy.job-total }})
229+
runs-on: ${{ matrix.runs-on }}
230230
needs: [cache-deps, images]
231+
timeout-minutes: 45
231232

232233
permissions:
233234
contents: read
234235

235236
strategy:
236237
fail-fast: false
237238
matrix:
238-
num_runners: [5]
239-
runner_id: [1, 2, 3, 4, 5]
239+
arch: [x64, arm64]
240+
num_runners: [10]
241+
runner_id: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
242+
include:
243+
- arch: x64
244+
runs-on: ubuntu-22.04
245+
- arch: arm64
246+
runs-on: ubuntu-22.04-arm
240247
steps:
241248
- name: Checkout
242249
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
@@ -285,14 +292,15 @@ jobs:
285292
NUM_RUNNERS: ${{ matrix.num_runners }}
286293
THIS_RUNNER: ${{ matrix.runner_id }}
287294
TERM: dumb
295+
IGNORE_SUITES: ${{ matrix.arch == 'arm64' && 'suites/upstream-authority-ejbca' || '' }} # Waiting for EJBCA to support arm64 (https://github.com/spiffe/spire/issues/6060)
288296
# We don't need to specify CICD_TARGET_BRANCH since the upgrade
289297
# integration test will detect the annotated tag for version checking.
290298
# CICD_TARGET_BRANCH:
291299
run: ./.github/workflows/scripts/split.sh | xargs ./test/integration/test.sh
292300

293301
integration-k8s:
294-
name: integration-k8s
295-
runs-on: ubuntu-22.04
302+
name: integration-k8s-${{ matrix.test[0] }}-${{ matrix.arch }}
303+
runs-on: ${{ matrix.runs-on }}
296304
needs: [cache-deps, images, build-matrix]
297305
timeout-minutes: 45
298306

@@ -302,10 +310,18 @@ jobs:
302310
strategy:
303311
fail-fast: false
304312
matrix:
305-
num_runners: [1]
306-
runner_id: [1]
307-
#Test elements should be added as [KubeCTLVersion, K8s-image, KindVersion]
308-
test: ${{ fromJson(needs.build-matrix.outputs.test) }}
313+
arch: [x64, arm64]
314+
include:
315+
- arch: x64
316+
runs-on: ubuntu-22.04
317+
num_runners: 1
318+
runner_id: 1
319+
- arch: arm64
320+
runs-on: ubuntu-22.04-arm
321+
num_runners: 1
322+
runner_id: 1
323+
#Test elements should be added as [KubeCTLVersion, K8s-image, KindVersion]
324+
test: ${{ fromJson(needs.build-matrix.outputs.test) }}
309325
steps:
310326
- name: Checkout
311327
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
@@ -547,7 +563,7 @@ jobs:
547563

548564
publish-artifacts:
549565
runs-on: ubuntu-22.04
550-
needs: [lint, unit-test, unit-test-race-detector, artifacts, integration, lint-windows, unit-test-windows, artifacts-windows, integration-windows]
566+
needs: [lint, unit-test, unit-test-race-detector, artifacts, integration, integration-k8s, lint-windows, unit-test-windows, artifacts-windows, integration-windows]
551567
permissions:
552568
contents: write
553569

@@ -579,7 +595,7 @@ jobs:
579595

580596
publish-images:
581597
runs-on: ubuntu-22.04
582-
needs: [lint, unit-test, unit-test-race-detector, artifacts, integration, lint-windows, unit-test-windows, artifacts-windows, integration-windows]
598+
needs: [lint, unit-test, unit-test-race-detector, artifacts, integration, integration-k8s, lint-windows, unit-test-windows, artifacts-windows, integration-windows]
583599
permissions:
584600
contents: read
585601
id-token: write

0 commit comments

Comments
 (0)