-
Notifications
You must be signed in to change notification settings - Fork 9.7k
73 lines (71 loc) · 2.52 KB
/
tests-template.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
---
name: Reusable Tests Workflow
on:
workflow_call:
inputs:
arch:
required: true
type: string
runs-on:
required: true
type: string
permissions: read-all
jobs:
test:
runs-on: ${{ inputs.runs-on }}
# this is to prevent arm64 jobs from running at forked projects
if: inputs.arch == 'amd64' || github.repository == 'etcd-io/etcd'
strategy:
fail-fast: false
matrix:
target:
- linux-${{ inputs.arch }}-integration-1-cpu
- linux-${{ inputs.arch }}-integration-2-cpu
- linux-${{ inputs.arch }}-integration-4-cpu
- linux-${{ inputs.arch }}-unit-4-cpu
- linux-386-unit-1-cpu
steps:
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
- id: goversion
run: echo "goversion=$(cat .go-version)" >> "$GITHUB_OUTPUT"
- uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2
with:
go-version: ${{ steps.goversion.outputs.goversion }}
- env:
TARGET: ${{ matrix.target }}
run: |
set -euo pipefail
go clean -testcache
mkdir "${TARGET}"
export JUNIT_REPORT_DIR=$(realpath ${TARGET})
case "${TARGET}" in
linux-${{ inputs.arch }}-integration-1-cpu)
make gofail-enable
GOOS=linux GOARCH=${{ inputs.arch }} CPU=1 make test-integration
;;
linux-${{ inputs.arch }}-integration-2-cpu)
make gofail-enable
GOOS=linux GOARCH=${{ inputs.arch }} CPU=2 make test-integration
;;
linux-${{ inputs.arch }}-integration-4-cpu)
make gofail-enable
GOOS=linux GOARCH=${{ inputs.arch }} CPU=4 make test-integration
;;
linux-${{ inputs.arch }}-unit-4-cpu)
GOOS=linux GOARCH=${{ inputs.arch }} CPU=4 GO_TEST_FLAGS='-p=2' make test-unit
;;
linux-386-unit-1-cpu)
# skip running single-threaded 386 unit tests only if arch is arm64
if [ "${{ inputs.arch }}" == "arm64" ]; then exit; fi
GOOS=linux GOARCH=386 CPU=1 GO_TEST_FLAGS='-p=4' make test-unit
;;
*)
echo "Failed to find target"
exit 1
;;
esac
- uses: actions/upload-artifact@604373da6381bf24206979c74d06a550515601b9 # v4.4.1
if: always()
with:
name: "${{ matrix.target }}"
path: ./**/junit_*.xml