chore: use a custom presubmit_tests.sh script (#1808)

The Knative test infrastructure runs presubmit tests which are defined
in vendor/knative.dev/hack/presubmit-tests.sh. This has been running in
test and release infrastructure. It is possible to customize the
behavior of this script by defining a handful of functions. The function
definitions provided here ensure that we are running tasks that are
already being run with the default (e.g. verify-codgen.sh) but make use
of our existing build and test targets.

(There also seems to be a stray version of this that I committed a
couple of years ago. That has been removed as it is in the wrong
location for test-infra and was never used anyway.)

Relates to: https://github.com/knative/func/issues/1333

Signed-off-by: Lance Ball <lball@redhat.com>
This commit is contained in:
Lance Ball 2023-06-27 07:09:52 -07:00 committed by GitHub
parent 19509e5053
commit 2bf1065266
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 51 additions and 18 deletions

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Copyright 2021 The Knative Authors # Copyright 2023 The Knative Authors
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
@ -14,41 +14,74 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
# This script runs the presubmit tests; it is started by prow for each PR. # Documentation about this script and how to use it can be found
# For convenience, it can also be executed manually. # at https://github.com/knative/hack
# Running the script without parameters, or with the --all-tests
# flag, causes all tests to be executed, in the right order.
# Use the flags --build-tests, --unit-tests and --integration-tests
# to run a specific set of tests.
# If you call this script after configuring the environment variables
# $KNATIVE_SERVING_VERSION / $KNATIVE_EVENTING_VERSION with a valid release,
# e.g. 0.6.0, Knative Serving / Eventing of this specified version will be installed
# in the Kubernetes cluster, and all the tests will run against Knative
# Serving / Eventing of this specific version.
export DISABLE_MD_LINTING=1 export DISABLE_MD_LINTING=1
export DISABLE_MD_LINK_CHECK=1 export DISABLE_MD_LINK_CHECK=1
export PRESUBMIT_TEST_FAIL_FAST=1 export PRESUBMIT_TEST_FAIL_FAST=1
export NODE_VERSION=v18.10.0
export NODE_DISTRO=linux-x64
export GO111MODULE=on
export KNATIVE_SERVING_VERSION=${KNATIVE_SERVING_VERSION:-latest} export KNATIVE_SERVING_VERSION=${KNATIVE_SERVING_VERSION:-latest}
export KNATIVE_EVENTING_VERSION=${KNATIVE_EVENTING_VERSION:-latest} export KNATIVE_EVENTING_VERSION=${KNATIVE_EVENTING_VERSION:-latest}
source $(dirname $0)/../vendor/knative.dev/hack/presubmit-tests.sh source $(dirname $0)/../vendor/knative.dev/hack/presubmit-tests.sh
function post_build_tests() {
local failed=0
header "Ensuring code builds cross-platform"
make cross-platform || failed=1
if (( failed )); then
results_banner "Build failed"
exit ${failed}
fi
}
function pre_unit_tests() {
install_node
install_rust
}
function install_node() {
subheader "Installing Node.js"
mkdir -p /tmp/nodejs
wget https://nodejs.org/dist/${NODE_VERSION}/node-${NODE_VERSION}-${NODE_DISTRO}.tar.xz
tar -xJvf node-${NODE_VERSION}-${NODE_DISTRO}.tar.xz -C /tmp/nodejs
export PATH=/tmp/nodejs/node-${NODE_VERSION}-${NODE_DISTRO}/bin:$PATH
node --version
npm version
npx --version
}
function install_rust() {
subheader "Installing Rust"
curl https://sh.rustup.rs -sSf > install.sh
sh install.sh -y
rm install.sh
source "$HOME/.cargo/env"
cargo version
}
function unit_tests() { function unit_tests() {
header "Running func tests" local failed=0
header "Unit tests for $(go_mod_module_name)"
make test || failed=1 make test || failed=1
if (( failed )); then if (( failed )); then
results_banner "Unit tests failed" results_banner "Unit tests failed"
exit ${failed} exit ${failed}
fi fi
header "Running built-in template tests"
make test-templates || failed=2
if (( failed )); then
results_banner "Template tests failed"
exit ${failed}
fi
} }
function integration_tests() { function integration_tests() {
header "Skipping func integration tests" local failed=0
header "Skipping integration tests"
# make test-integration || failed=1 # make test-integration || failed=1
# if (( failed )); then # if (( failed )); then
@ -57,4 +90,4 @@ function integration_tests() {
# fi # fi
} }
main $@ main "$@"