Files
Ilker ManapandClaude Opus 5.5 25c4ec9f2a
CI / test (push) Failing after 30m4s
CI: a package that hangs says which test it hung in
Every test run since c22528c ended at the job's 30-minute deadline with
nothing after internal/release, while the same tests pass with -race on
Linux, as a user and as root, in 5 minutes. A 12-minute test timeout makes
the hang name itself.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-16 16:54:48 +02:00

71 lines
2.6 KiB
YAML

# Runs on a containerized act_runner (label: ubuntu-latest).
#
# The runner needs outbound access to the Docker registry for its job image and
# to github.com for the actions below. If GitHub is unreachable from the runner,
# replace the checkout step with a plain `git clone` and install Go by hand —
# see .gitea/workflows/README.md in maas-proxmox for that pattern.
name: CI
on:
push:
branches: [main]
pull_request:
# Lets a queued or failed run be retried from the UI without a new commit.
workflow_dispatch:
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
# Track the toolchain in go.mod rather than pinning it twice.
go-version-file: go.mod
cache: true
- name: Check formatting
run: |
out=$(gofmt -l .)
if [ -n "$out" ]; then echo "gofmt needed on:"; echo "$out"; exit 1; fi
- name: Vet
run: go vet ./...
- name: Test with the race detector
# Under the job's limit, so a package that hangs panics with the
# test it was in and where every goroutine waited, rather than the
# job ending at its deadline with nothing said: from 2026-10-15 every
# run did, printing nothing after internal/release.
run: go test -race -timeout 12m ./...
- name: Build
run: go build ./...
# llmgw-kb runs on people's own machines, Windows included, which no
# test here runs on: building it for each catches a Unix-only call.
- name: Build llmgw-kb for every system
run: |
for target in windows/amd64 windows/arm64 darwin/amd64 darwin/arm64 linux/amd64 linux/arm64; do
CGO_ENABLED=0 GOOS="${target%/*}" GOARCH="${target#*/}" go build -o /dev/null ./cmd/llmgw-kb
done
# The Terraform provider is a module of its own, which ./... above does
# not reach. Its tests check its client against docs/admin-api.openapi.json,
# so a change to the admin API that breaks the provider fails here. The
# acceptance tests (TF_ACC=1) are left out: they need Terraform itself.
- name: Test the Terraform provider
working-directory: terraform-provider-llmgw
run: |
go vet ./...
go test ./...
# The NVML backend needs cgo and cannot run without a driver, but it must
# at least keep compiling: it is the only source of NVLink topology and a
# break would otherwise surface on a GPU node, far from here.
- name: Build the NVML backend
env:
CGO_ENABLED: "1"
run: go build -tags nvml ./...