Commit Graph

17 Commits

Author SHA1 Message Date
Tim Hockin
6dbc754ed6
Retool typecheck to be simpler
Instead of walking paths ourselves, just let Go's packages library do
it.  This is a slight CLI change - it wants "./foo" rather than "foo".

This also flagged a few things which seem to be legit failures.
2024-02-29 22:07:00 -08:00
Tim Hockin
d61f299614
Call verify_go_version at the END of setup_env
Prior to this it would download Go, setup the environment, then (maybe)
download Go again.

I renamed verify_go_version to be internal and fixed all callers.
2024-02-29 22:06:56 -08:00
Tim Hockin
530c4352fb
Rename new::setup_env back to setup_env 2024-02-29 22:06:44 -08:00
Tim Hockin
b32e207256
Fix last run-in-gopath user: typecheck
This now works across modules

Verified by introducing errors in 2 different modules and running.
2024-02-29 22:06:41 -08:00
Jordan Liggitt
8b22cb4696
Revert "Make verify-typecheck.sh only check valid targets for a platform"
This reverts commit e48aa09340.
2024-01-22 20:45:25 -08:00
Dan Winship
e48aa09340 Make verify-typecheck.sh only check valid targets for a platform
e.g., don't try to compile kube-proxy on darwin, since we don't build
it there anyway.
2023-11-04 10:24:19 -04:00
Tim Hockin
70c1c795e8
Remove generated file rules in make
This is all covered by update-codegen.sh now.

The old `make generated_files` rule still exists, but just prints a
warning.
2022-10-04 08:50:30 -07:00
Eddie Zaneski
50bdc98754
Add env to verify-typecheck for serial execution
Signed-off-by: Eddie Zaneski <eddiezane@gmail.com>
2022-03-09 18:21:27 -07:00
Tim Hockin
d187d7effa Rewrite typecheck against x/tools/go/packages
This runs much faster than before.  This change removes all of the
async status output because all of the compute time is spent inside
go/packages, with no opportunity to update the status.

Adds testdata code to prove it fails when expected.
2020-06-26 11:12:06 -07:00
Tim Hockin
15df3d6042 Make verify-typecheck not depend on GOPATH
This script fails if not under a GOPATH because we use go/types, which
is not modules aware.
2020-06-25 13:39:51 -07:00
Jin Hase
093fd4ab02 Add comments in several hack/verify-*.sh(s-v) 2020-01-21 19:10:46 +09:00
xichengliudui
783aa61979 fix shellcheck in hack/ 2019-02-18 19:11:21 -05:00
Kubernetes Submit Queue
b5f61ac129
Merge pull request #62657 from matthyx/master
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Update all script shebangs to use /usr/bin/env interpreter instead of /bin/interpreter

This is required to support systems where bash doesn't reside in /bin (such as NixOS, or the *BSD family) and allow users to specify a different interpreter version through $PATH manipulation.
https://www.cyberciti.biz/tips/finding-bash-perl-python-portably-using-env.html
```release-note
Use /usr/bin/env in all script shebangs to increase portability.
```
2018-05-02 19:44:32 -07:00
Matthias Bertschy
9b15af19b2 Update all script to use /usr/bin/env bash in shebang 2018-04-19 13:20:13 +02:00
Tim Hockin
59ef5e2379 Generate bindata through make 2018-04-10 20:55:03 -07:00
Ryan Hitchman
800c2f8dcd Ensure generated files are present before typechecking. 2018-02-27 14:31:57 -08:00
Ryan Hitchman
dd40e612dd Add test/typecheck, a fast typecheck for all build platforms.
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
2018-02-27 13:53:32 -08:00