mirror of
https://github.com/etcd-io/bbolt.git
synced 2025-05-01 05:00:03 +00:00
Race tests require a larger instance size, which user forks cannot access. By not running them on user forks, contributors won't be notified that their builds are failing due to timeouts trying to run the job, while the tests will still run on etcd-io/bbolt pull requests and commits. Signed-off-by: Ivan Valdes <ivan@vald.es>
56 lines
1.6 KiB
YAML
56 lines
1.6 KiB
YAML
---
|
|
name: Reusable unit test Workflow
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
runs-on:
|
|
required: false
|
|
type: string
|
|
default: ubuntu-latest
|
|
targets:
|
|
required: false
|
|
type: string
|
|
default: "['linux-unit-test-1-cpu','linux-unit-test-2-cpu','linux-unit-test-4-cpu']"
|
|
permissions: read-all
|
|
|
|
jobs:
|
|
test-linux:
|
|
# this is to prevent arm64 jobs from running at forked projects
|
|
if: ${{ github.repository == 'etcd-io/bbolt' || inputs.runs-on == 'ubuntu-latest' }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
target: ${{ fromJSON(inputs.targets) }}
|
|
runs-on: ${{ inputs.runs-on }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- id: goversion
|
|
run: echo "goversion=$(cat .go-version)" >> "$GITHUB_OUTPUT"
|
|
- uses: actions/setup-go@v5
|
|
with:
|
|
go-version: ${{ steps.goversion.outputs.goversion }}
|
|
- run: make fmt
|
|
- env:
|
|
TARGET: ${{ matrix.target }}
|
|
run: |
|
|
case "${TARGET}" in
|
|
linux-unit-test-1-cpu)
|
|
CPU=1 make test
|
|
;;
|
|
linux-unit-test-2-cpu)
|
|
CPU=2 make test
|
|
;;
|
|
linux-unit-test-4-cpu)
|
|
CPU=4 make test
|
|
;;
|
|
linux-unit-test-4-cpu-race)
|
|
CPU=4 ENABLE_RACE=true make test
|
|
;;
|
|
*)
|
|
echo "Failed to find target"
|
|
exit 1
|
|
;;
|
|
esac
|
|
- name: golangci-lint
|
|
uses: golangci/golangci-lint-action@38e1018663fa5173f3968ea0777460d3de38f256 # v5.3.0
|