name: Tests-arm64 on: schedule: - cron: '30 1 * * *' # runs daily at 1:30 am. jobs: goversion: uses: ./.github/workflows/go-version.yaml test: # this is to prevent the job to run at forked projects if: github.repository == 'etcd-io/etcd' runs-on: [Linux, ARM64] needs: goversion 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@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9 # v4.0.0 with: ref: main go-version: ${{ needs.goversion.outputs.goversion }} - run: date - env: TARGET: ${{ matrix.target }} run: | set -euo pipefail mkdir "${TARGET}" export JUNIT_REPORT_DIR=$(realpath ${TARGET}) case "${TARGET}" in linux-arm64-integration-1-cpu) GOOS=linux GOARCH=arm64 CPU=1 make test-integration ;; linux-arm64-integration-2-cpu) GOOS=linux GOARCH=arm64 CPU=2 make test-integration ;; linux-arm64-integration-4-cpu) GOOS=linux GOARCH=arm64 CPU=4 make test-integration ;; linux-arm64-unit-4-cpu-race) GOOS=linux GOARCH=arm64 CPU=4 RACE=true GO_TEST_FLAGS='-p=2' make test-unit ;; *) echo "Failed to find target" exit 1 ;; esac - uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 if: always() with: path: ./**/junit_*.xml