feat: initial release
Assisted-by: GLM 5.3 Flash
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
# Race, Go. Dispatched by hand, and never a gate on a push or a tag: the release tag is
|
||||
# cut only after `just gates` has already raced the tree, so this workflow is the
|
||||
# explicit second opinion, not a step of the release.
|
||||
#
|
||||
# The race detector roughly doubles both time and memory, which the shared runner box
|
||||
# cannot afford on every push. Locally it belongs to `just gates`, which runs it once
|
||||
# per task; here it is an explicit decision rather than a routine.
|
||||
#
|
||||
# The matrix keeps the libm check the push pipeline once carried: the same linux/amd64
|
||||
# oracle digests run against glibc (fedora, openeuler) and musl (alpine), which is
|
||||
# exactly where floating-point kernels can drift. Dispatched, because three full
|
||||
# sweeps are not affordable on every push.
|
||||
#
|
||||
# Every step is one command, so the step that fails is the gate that failed.
|
||||
name: Race
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
# One core: parallelism buys no speed here and costs memory the box does not have.
|
||||
GOFLAGS: -p=1
|
||||
GOMAXPROCS: "2"
|
||||
|
||||
jobs:
|
||||
race:
|
||||
runs-on: ${{ matrix.runner }}
|
||||
timeout-minutes: 45
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- runner: fedora
|
||||
packages: dnf install -y git gcc perl
|
||||
- runner: alpine
|
||||
packages: apk add --no-cache git gcc perl musl-dev
|
||||
- runner: openeuler
|
||||
packages: dnf install -y git gcc perl
|
||||
steps:
|
||||
- name: Install git, gcc and Perl
|
||||
# The race detector needs cgo, hence gcc; alpine adds musl-dev for the same
|
||||
# reason. The installs are no-ops where the packages already exist.
|
||||
run: ${{ matrix.packages }}
|
||||
|
||||
- uses: actions/checkout@v7
|
||||
|
||||
- uses: actions/setup-go@v6
|
||||
with:
|
||||
go-version-file: go.mod
|
||||
cache: true
|
||||
|
||||
- name: Oracle digests for this platform
|
||||
run: go test -run TestOracle -v .
|
||||
|
||||
- name: Race
|
||||
# Equal to `packages` in the project's justfile: the logic packages,
|
||||
# the main-program examples aside.
|
||||
run: go test -race -count=1 -timeout 30m . ./internal/... ./grad/... ./integrate/... ./io/... ./linalg/... ./optim/... ./signal/... ./spmd/... ./stats/...
|
||||
Reference in New Issue
Block a user