mirror of https://github.com/k3s-io/k3s
![]() Most of the time spent compiling is spent optimizing and linking binary code. Most errors occur at the syntax or semantic (type) layers. Go's compiler is importable as a normal package, so we can do fast syntax and type checking for the 10 platforms we build on. This currently takes ~6 minutes of CPU time (parallelized). This makes presubmit cross builds superfluous, since it should catch most cross-build breaks (generally Unix and 64-bit assumptions). Example output: $ time go run test/typecheck/main.go type-checking: linux/amd64, windows/386, darwin/amd64, linux/arm, linux/386, windows/amd64, linux/arm64, linux/ppc64le, linux/s390x, darwin/386 ERROR(windows/amd64) pkg/proxy/ipvs/proxier.go:1708:27: ENXIO not declared by package unix ERROR(windows/386) pkg/proxy/ipvs/proxier.go:1708:27: ENXIO not declared by package unix real 0m45.083s user 6m15.504s sys 1m14.000s |
||
---|---|---|
.. | ||
helpers | ||
BUILD | ||
Makefile.manifest | ||
build.sh | ||
clean.sh | ||
cross.sh | ||
make-help.sh | ||
test-cmd-util.sh | ||
test-cmd.sh | ||
test-e2e-node.sh | ||
test-integration.sh | ||
test-kubeadm-cmd.sh | ||
test.sh | ||
update.sh | ||
verify.sh | ||
vet.sh |