kubernetes/hack
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
..
boilerplate Require boilerplate on Bazel Skylark source files 2018-02-16 13:44:04 -08:00
cmd/teststale Autogenerated: hack/update-bazel.sh 2018-02-16 13:43:01 -08:00
e2e-internal Remove all traces of federation 2017-10-26 13:37:37 -07:00
gen-swagger-doc Switch to k8s.gcr.io vanity domain 2018-02-07 21:14:19 -08:00
jenkins Increase timeout of integration tests 2018-02-26 14:29:42 -08:00
lib hack/lib/protoc.sh: don't split find-binary output. 2018-02-26 16:46:19 +02:00
make-rules Add test/typecheck, a fast typecheck for all build platforms. 2018-02-27 13:53:32 -08:00
testdata update -o name format to kind.group/name 2018-02-15 10:33:06 -05:00
verify-flags Add multi-vc configuration for e2e tests 2018-01-18 15:29:27 -08:00
.golint_failures update golint_failures 2018-02-27 19:58:41 +08:00
.spelling_failures add spelling checking script 2018-02-23 09:33:14 +08:00
autogenerated_placeholder.txt
benchmark-go.sh
BUILD Autogenerated: hack/update-bazel.sh 2018-02-16 13:43:01 -08:00
build-cross.sh
build-go.sh
build-ui.sh
cherry_pick_pull.sh Add parent PR title to cherry-picked PR title 2017-11-25 13:36:13 +08:00
dev-build-and-push.sh
dev-build-and-up.sh
dev-push-hyperkube.sh
e2e_test.go Fix e2e_test.go 2017-07-05 14:24:25 -07:00
e2e-node-test.sh Fix typo in e2e-node-test.sh 2017-09-19 18:10:21 +05:30
e2e.go Add signal handler for catching Ctrl-C on hack/e2e 2017-08-23 16:05:46 -07:00
generate-bindata.sh cluster: move logging library to hack/ 2018-01-13 16:37:50 -08:00
generate-docs.sh Remove all traces of federation 2017-10-26 13:37:37 -07:00
get-build.sh
ginkgo-e2e.sh cluster: remove unused functions 2018-02-01 07:23:50 -08:00
godep-restore.sh Remove unneeded code 2018-01-30 09:29:51 -08:00
godep-save.sh Remove dep-reviewers 2018-02-26 17:04:32 -08:00
grab-profiles.sh remove deprecated /proxy paths 2018-02-20 14:42:19 -08:00
import-restrictions.yaml Expose single annotation/label via downward API 2017-11-21 19:21:10 -08:00
install-etcd.sh
list-feature-tests.sh Fix list-features script 2017-08-27 22:20:04 -04:00
local-up-cluster.sh Merge pull request #60431 from dims/use-feature-gates-on-kube-proxy-command-line 2018-02-27 10:50:49 -08:00
lookup_pull.py update url information to prevent http 304 redirection 2017-05-25 14:05:02 +08:00
OWNERS Add liggitt to hack approvers 2018-01-18 20:50:18 -05:00
print-workspace-status.sh bazel: support using SOURCE_DATE_EPOCH to override date 2018-02-08 21:12:03 -08:00
run-in-gopath.sh
test-cmd.sh
test-go.sh
test-integration.sh Remove unnecessary wrapper flags 2017-06-07 12:31:01 -04:00
test-update-storage-objects.sh set default enabled admission plugins by official document 2018-02-22 11:02:02 +08:00
update_owners.py Remove myself from a bunch of places 2017-07-20 12:10:46 +02:00
update-all.sh Force use of Makefile for update 2018-01-22 15:11:16 -08:00
update-api-reference-docs.sh
update-bazel.sh bzl: fix update-bazel.sh 2018-02-26 11:01:30 -08:00
update-cloudprovider-gce.sh Fix lint and bazel 2018-01-09 23:09:08 -08:00
update-codegen.sh Partial revert of fb5caac2da 2018-02-14 11:31:51 -08:00
update-generated-device-plugin-dockerized.sh Create pkg/kubelet/apis/deviceplugin/v1beta1 directory. 2018-02-08 17:04:43 -08:00
update-generated-device-plugin.sh Added script to generate the Device Plugin API 2017-08-15 14:59:42 -07:00
update-generated-docs.sh Remove all traces of federation 2017-10-26 13:37:37 -07:00
update-generated-kms-dockerized.sh Add verify script for kms generated file 2018-02-08 01:29:56 +00:00
update-generated-kms.sh Add generated script for kms api pb file 2018-02-08 01:00:38 +00:00
update-generated-protobuf-dockerized.sh Include generated files 2018-02-23 18:09:06 +01:00
update-generated-protobuf.sh
update-generated-runtime-dockerized.sh Increment CRI version from v1alpha1 to v1alpha2 2018-02-07 09:06:26 +01:00
update-generated-runtime.sh
update-generated-swagger-docs.sh Promote v1alpha1 meta to v1beta1 2018-02-02 14:00:45 -05:00
update-godep-licenses.sh hack: fix godep license parsing for gopkg.in packages 2017-11-22 09:38:17 -08:00
update-gofmt.sh
update-openapi-spec.sh
update-staging-godeps-dockerized.sh Clean up godep scripts to be self-contained 2017-09-29 15:16:03 -07:00
update-staging-godeps.sh Dockerize update-staging-godeps 2017-07-25 12:26:57 -07:00
update-swagger-spec.sh Merge pull request #58303 from php-coder/fix_verify-swagger-spec_sript 2018-01-17 02:43:58 -08:00
update-translations.sh Extract a bunch more strings from kubectl 2017-04-06 20:12:50 -07:00
verify-all.sh
verify-api-groups.sh Fixup after k8s.io/{kube-gen -> code-generator} rename 2017-08-17 17:55:12 +02:00
verify-api-reference-docs.sh Ignore OWNERS files in hack/verify-api-reference-docs.sh 2017-10-18 11:15:08 -07:00
verify-bazel.sh Route verify-bazel output to stderr 2018-02-07 21:39:38 -08:00
verify-boilerplate.sh Route verify-boilerplate output to stderr 2018-02-07 21:41:31 -08:00
verify-cli-conventions.sh More cli sanity verifications 2017-05-18 15:44:49 -03:00
verify-cloudprovider-gce.sh Fix lint and bazel 2018-01-09 23:09:08 -08:00
verify-codegen.sh Add sample CustomResourceDefinition controller 2017-10-19 00:21:57 +01:00
verify-description.sh pkg/apis/core: fixup package names 2017-11-09 12:14:07 +01:00
verify-flags-underscore.py some small fix in verify-flags-underscore 2017-08-14 14:55:42 +08:00
verify-generated-device-plugin.sh Create pkg/kubelet/apis/deviceplugin/v1beta1 directory. 2018-02-08 17:04:43 -08:00
verify-generated-docs.sh Remove all traces of federation 2017-10-26 13:37:37 -07:00
verify-generated-files-remake.sh Add debugging to the codegen process 2017-08-25 14:08:42 -07:00
verify-generated-kms.sh Add verify script for kms generated file 2018-02-08 01:29:56 +00:00
verify-generated-protobuf.sh Treat staging repos as authoritative for all files 2018-01-09 15:18:27 -08:00
verify-generated-runtime.sh Increment CRI version from v1alpha1 to v1alpha2 2018-02-07 09:06:26 +01:00
verify-generated-swagger-docs.sh Ignore .import-restrictions when checking against generated docs 2017-10-13 07:09:38 -04:00
verify-godep-licenses.sh Route verify-godep-licenses output to stderr 2018-02-07 21:45:02 -08:00
verify-godeps.sh Enforce OWNERS file in Godeps and vendor dirs 2018-02-15 13:30:30 -08:00
verify-gofmt.sh Route verify-gofmt output to stderr 2018-02-07 21:39:49 -08:00
verify-golint.sh Invert .linted_packages into .golint_failures. 2017-07-17 14:37:40 -07:00
verify-govet.sh Run hack/verify-govet.sh as part of verify make target 2017-06-21 11:10:25 -07:00
verify-import-boss.sh Fixup after k8s.io/{kube-gen -> code-generator} rename 2017-08-17 17:55:12 +02:00
verify-imports.sh import-verifier: use yaml for inline comments 2017-10-25 16:53:26 +02:00
verify-linkcheck.sh
verify-no-vendor-cycles.sh Bugfix: verify-no-vendor-cycles.sh detects wrong cycles 2017-08-01 21:09:53 -07:00
verify-openapi-spec.sh Pipe error message from openapi/swaggerspec verify checks to stderr 2018-02-14 10:31:33 -08:00
verify-pkg-names.sh remove reference to v1alpha1 2017-11-21 13:00:40 -08:00
verify-readonly-packages.sh
verify-spelling.sh add spelling checking script 2018-02-23 09:33:14 +08:00
verify-staging-godeps.sh Add in godeps verification for hack/lib/ and build/ 2018-01-26 13:29:35 -08:00
verify-swagger-spec.sh Pipe error message from openapi/swaggerspec verify checks to stderr 2018-02-14 10:31:33 -08:00
verify-symbols.sh
verify-test-images.sh
verify-test-owners.sh
verify-typecheck.sh Add test/typecheck, a fast typecheck for all build platforms. 2018-02-27 13:53:32 -08:00