mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
75 lines
2.6 KiB
YAML
75 lines
2.6 KiB
YAML
---
|
|
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:
|
|
- name: Collect Workflow Telemetry
|
|
uses: catchpoint/workflow-telemetry-action@v1
|
|
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
|
- id: goversion
|
|
run: echo "goversion=$(cat .go-version)" >> "$GITHUB_OUTPUT"
|
|
- uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
|
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@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3
|
|
if: always()
|
|
with:
|
|
path: ./**/junit_*.xml
|