mirror of https://github.com/knative/func.git
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:
parent
19509e5053
commit
2bf1065266
|
@ -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 "$@"
|
||||||
|
|
Loading…
Reference in New Issue