Skip to content

ci: add test runner#52

Draft
tamird wants to merge 12 commits into
masterfrom
attempt-to-run
Draft

ci: add test runner#52
tamird wants to merge 12 commits into
masterfrom
attempt-to-run

Conversation

@tamird

@tamird tamird commented Aug 13, 2024

Copy link
Copy Markdown
Collaborator

No description provided.

@tamird tamird force-pushed the attempt-to-run branch 2 times, most recently from f0d1a65 to 10b9501 Compare June 17, 2026 16:26
@tamird tamird changed the title Attempt to run tests on s390x,aarch64 ci: add test runner Jun 17, 2026
@tamird tamird force-pushed the attempt-to-run branch 4 times, most recently from 5509c76 to b84f05f Compare June 18, 2026 14:39
tamird added 4 commits June 19, 2026 10:20
Run the tests even on broken platforms for science.
tamird added 4 commits June 19, 2026 10:28
Zig classifies linker inputs by filename and rejects Go race runtime
objects with the .syso extension, even when they are forwarded through
the linker argument interface.

Create a hard-linked .o alias for each downloaded race runtime and have
the compiler trampoline substitute that path.
Zig can compile and partially link the cross-race runtime, but the Go
internal linker cannot resolve its libc references.

Force external link mode for Zig-backed race builds so Zig performs the
final link as well.
Coalescing architecture jobs lets each Go version reuse toolchain
setup, but serial execution gives back most of the wall-clock
savings.

Run the architectures concurrently after shared race and emulation
setup. Keep result mutation and checkpoint writes in the coordinator
so completion order does not affect the report or diagnostics.
The Go compiler emits expected -m diagnostics with file positions.
GitHub Actions interprets them as failures, creating ten bogus
annotations in every inlining-enabled job.

Keep successful diagnostics silent. Replay stdout and stderr through
their original streams if the command or inlining assertion fails.
tamird added 4 commits June 19, 2026 14:27
Hosted runner setup dominates this compatibility matrix. Replace the
one-job-per-version layout with balanced version pairs that install exact
toolchains through golang.org/dl. Keep Go 1.3 and 1.4 on setup-go and
install all gccgo packages once.

Emit and checkpoint one result file per Go version before acquisition. The
report can then preserve successful siblings when a shard fails while still
using the job conclusion for pending work.
Replace the runner framework with two small source files that own
toolchain orchestration and per-architecture execution. Download paired
SDKs concurrently, then run versions sequentially and architectures in
parallel.

Checkpoint one result file per job so the report can preserve completed
cells and reconstruct missing plans. Keep setup-go's GOROOT for Go 1.3
and 1.4, and use Zig rather than cross-GCC packages for race builds.
Use current release tags for every action and let GitHub apply its normal job lifetime instead of maintaining separate timeout budgets.

Document that paired Go versions share one runner to amortize startup and that Go 1.3 and 1.4 use setup-go because golang.org/dl has no wrappers for them.
Use major action tags and let setup-zig follow the latest tagged Zig release. Make retry artifacts attempt-specific and derive report ordering from the matrix jobs instead of a duplicated version list.

Remove the runner unit tests and protocol schema, use conventional long options, and document compatibility behavior that would otherwise look like dead code.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant