mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
82 lines
2.6 KiB
YAML
82 lines
2.6 KiB
YAML
---
|
|
name: Reusable Arm64 Integration Workflow
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
etcdBranch:
|
|
required: true
|
|
type: string
|
|
integrationTestCmd:
|
|
required: true
|
|
type: string
|
|
unitTestCmd:
|
|
required: true
|
|
type: string
|
|
gofailMake:
|
|
required: false
|
|
type: string
|
|
default: "yes"
|
|
permissions: read-all
|
|
|
|
jobs:
|
|
test:
|
|
# this is to prevent the job to run at forked projects
|
|
if: github.repository == 'etcd-io/etcd'
|
|
runs-on: [self-hosted, Linux, ARM64]
|
|
container: golang:1.19-bullseye
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
target:
|
|
- linux-arm64-integration-1-cpu
|
|
- linux-arm64-integration-2-cpu
|
|
- linux-arm64-integration-4-cpu
|
|
- linux-arm64-unit-4-cpu-race
|
|
steps:
|
|
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
|
with:
|
|
ref: "${{ inputs.etcdBranch }}"
|
|
# https://github.com/actions/checkout/issues/1169
|
|
- run: git config --system --add safe.directory '*'
|
|
- id: goversion
|
|
run: echo "goversion=$(cat .go-version)" >> "$GITHUB_OUTPUT"
|
|
- uses: actions/setup-go@fac708d6674e30b6ba41289acaab6d4b75aa0753 # v4.0.1
|
|
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-arm64-integration-1-cpu)
|
|
if [ "${{ inputs.gofailMake }}" == "yes" ]; then make gofail-enable; fi
|
|
GOOS=linux GOARCH=arm64 CPU=1 ${{ inputs.integrationTestCmd }}
|
|
;;
|
|
linux-arm64-integration-2-cpu)
|
|
if [ "${{ inputs.gofailMake }}" == "yes" ]; then make gofail-enable; fi
|
|
GOOS=linux GOARCH=arm64 CPU=2 ${{ inputs.integrationTestCmd }}
|
|
;;
|
|
linux-arm64-integration-4-cpu)
|
|
if [ "${{ inputs.gofailMake }}" == "yes" ]; then make gofail-enable; fi
|
|
GOOS=linux GOARCH=arm64 CPU=4 ${{ inputs.integrationTestCmd }}
|
|
;;
|
|
linux-arm64-unit-4-cpu-race)
|
|
GOOS=linux GOARCH=arm64 CPU=4 RACE=true ${{ inputs.unitTestCmd }}
|
|
;;
|
|
*)
|
|
echo "Failed to find target"
|
|
exit 1
|
|
;;
|
|
esac
|
|
- uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
|
|
if: always()
|
|
with:
|
|
path: ./**/junit_*.xml
|