2020-03-10 14:05:16 +00:00
|
|
|
#!/usr/bin/env bash
|
2019-05-15 20:28:51 +00:00
|
|
|
|
|
|
|
# Copyright 2019 The Tekton Authors
|
|
|
|
#
|
|
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
# you may not use this file except in compliance with the License.
|
|
|
|
# You may obtain a copy of the License at
|
|
|
|
#
|
|
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
#
|
|
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
# See the License for the specific language governing permissions and
|
|
|
|
# limitations under the License.
|
|
|
|
|
2020-12-04 12:09:27 +00:00
|
|
|
# Configure the number of parallel tests running at the same time, start from 0
|
2022-04-01 10:37:44 +00:00
|
|
|
MAX_NUMBERS_OF_PARALLEL_TASKS=7 # => 8
|
2020-12-04 12:09:27 +00:00
|
|
|
|
2024-03-06 20:51:54 +00:00
|
|
|
export RELEASE_YAML=https://github.com/tektoncd/pipeline/releases/download/v0.57.0/release.yaml
|
2020-03-23 08:40:43 +00:00
|
|
|
|
2019-05-15 20:28:51 +00:00
|
|
|
source $(dirname $0)/../vendor/github.com/tektoncd/plumbing/scripts/e2e-tests.sh
|
2019-11-15 12:34:27 +00:00
|
|
|
source $(dirname $0)/e2e-common.sh
|
2019-05-15 20:28:51 +00:00
|
|
|
|
2023-09-15 05:42:20 +00:00
|
|
|
E2E_SKIP_CLUSTER_CREATION=${E2E_SKIP_CLUSTER_CREATION:="false"}
|
|
|
|
|
2019-10-23 14:21:15 +00:00
|
|
|
TMPF=$(mktemp /tmp/.mm.XXXXXX)
|
|
|
|
clean() { rm -f ${TMPF}; }
|
|
|
|
trap clean EXIT
|
|
|
|
|
2019-05-15 20:28:51 +00:00
|
|
|
# Setup a test cluster.
|
2019-10-23 14:21:15 +00:00
|
|
|
[[ -z ${LOCAL_CI_RUN} ]] && {
|
2019-11-15 12:34:27 +00:00
|
|
|
|
2019-10-23 14:21:15 +00:00
|
|
|
# Initialize cluster
|
2023-09-15 05:42:20 +00:00
|
|
|
if [ "${E2E_SKIP_CLUSTER_CREATION}" != "true" ]; then
|
|
|
|
initialize "$@"
|
|
|
|
fi
|
2019-10-23 14:21:15 +00:00
|
|
|
|
|
|
|
# Install the latest Tekton CRDs.
|
2019-11-15 12:34:27 +00:00
|
|
|
install_pipeline_crd
|
2019-10-23 14:21:15 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
# You can ignore some yaml tests by providing the TEST_YAML_IGNORES variable
|
|
|
|
# with the test name separated by a space, for example:
|
|
|
|
#
|
|
|
|
# TEST_YAML_IGNORES="kaniko s2i"
|
|
|
|
#
|
|
|
|
# will ignore the kaniko and s2i tests,
|
|
|
|
#
|
|
|
|
TEST_YAML_IGNORES=${TEST_YAML_IGNORES:-""}
|
2019-05-15 20:28:51 +00:00
|
|
|
|
2019-11-21 17:23:59 +00:00
|
|
|
# Allow ignoring some yaml tests, space separated, should be the basename of the
|
|
|
|
# test for example "s2i"
|
2020-12-17 13:11:54 +00:00
|
|
|
TEST_TASKRUN_IGNORES=${TEST_TASKRUN_IGNORES:-"maven"}
|
2019-05-15 20:28:51 +00:00
|
|
|
|
2020-06-23 08:30:00 +00:00
|
|
|
# Define this variable if you want to run all tests and not just the modified one.
|
|
|
|
TEST_RUN_ALL_TESTS=${TEST_RUN_ALL_TESTS:-""}
|
|
|
|
|
2019-05-15 20:28:51 +00:00
|
|
|
set -ex
|
|
|
|
set -o pipefail
|
2019-10-23 14:21:15 +00:00
|
|
|
|
2024-03-06 20:51:54 +00:00
|
|
|
all_stepactions=$(echo stepaction/*/*/tests)
|
2020-06-23 08:30:00 +00:00
|
|
|
all_tests=$(echo task/*/*/tests)
|
2021-03-30 16:28:11 +00:00
|
|
|
function detect_changed_e2e_test() {
|
|
|
|
# detect for changes in e2e tests dir
|
2021-06-01 09:14:08 +00:00
|
|
|
git --no-pager diff --name-only "${PULL_BASE_SHA}".."${PULL_PULL_SHA}"|grep "^test/[^/]*"
|
2021-03-30 16:28:11 +00:00
|
|
|
}
|
|
|
|
|
2021-04-09 09:29:02 +00:00
|
|
|
[[ -z ${TEST_RUN_ALL_TESTS} ]] && [[ ! -z $(detect_changed_e2e_test) ]] && TEST_RUN_ALL_TESTS=1
|
2021-03-30 16:28:11 +00:00
|
|
|
|
2024-03-06 20:51:54 +00:00
|
|
|
function detect_new_changed_resources() {
|
2020-11-19 17:39:29 +00:00
|
|
|
# detect for changes in tests dir of the task
|
2021-01-08 09:13:22 +00:00
|
|
|
git --no-pager diff --name-only "${PULL_BASE_SHA}".."${PULL_PULL_SHA}"|grep 'task/[^\/]*/[^\/]*/tests/[^/]*'|xargs -I {} dirname {}|sed 's/\(tests\).*/\1/g'
|
2020-11-19 17:39:29 +00:00
|
|
|
# detect for changes in the task manifest
|
|
|
|
git --no-pager diff --name-only "${PULL_BASE_SHA}".."${PULL_PULL_SHA}"|grep 'task/[^\/]*/[^\/]*/*[^/]*.yaml'|xargs -I {} dirname {}|awk '{print $1"/tests"}'
|
2024-03-06 20:51:54 +00:00
|
|
|
# detect for changes in tests dir of the stepaction
|
|
|
|
git --no-pager diff --name-only "${PULL_BASE_SHA}".."${PULL_PULL_SHA}"|grep 'stepaction/[^\/]*/[^\/]*/tests/[^/]*'|xargs -I {} dirname {}|sed 's/\(tests\).*/\1/g'
|
|
|
|
# detect for changes in the stepaction manifest
|
|
|
|
git --no-pager diff --name-only "${PULL_BASE_SHA}".."${PULL_PULL_SHA}"|grep 'stepaction/[^\/]*/[^\/]*/*[^/]*.yaml'|xargs -I {} dirname {}|awk '{print $1"/tests"}'
|
2020-10-29 14:47:20 +00:00
|
|
|
}
|
2020-06-23 08:30:00 +00:00
|
|
|
|
2020-10-29 14:47:20 +00:00
|
|
|
if [[ -z ${TEST_RUN_ALL_TESTS} ]];then
|
2024-03-06 20:51:54 +00:00
|
|
|
all_tests=$(detect_new_changed_resources|sort -u || true)
|
2020-06-23 08:30:00 +00:00
|
|
|
[[ -z ${all_tests} ]] && {
|
|
|
|
echo "No tests has been detected in this PR. exiting."
|
|
|
|
success
|
|
|
|
}
|
|
|
|
fi
|
|
|
|
|
2024-03-06 20:51:54 +00:00
|
|
|
test_yaml_can_install "${all_stepactions}"
|
2020-06-23 08:30:00 +00:00
|
|
|
test_yaml_can_install "${all_tests}"
|
|
|
|
|
2024-03-06 20:51:54 +00:00
|
|
|
function test_resources {
|
2020-12-04 12:09:27 +00:00
|
|
|
local cnt=0
|
2024-03-06 20:51:54 +00:00
|
|
|
local resource_to_tests=""
|
2020-12-04 12:09:27 +00:00
|
|
|
|
|
|
|
for runtest in $@;do
|
2024-03-06 20:51:54 +00:00
|
|
|
resource_to_tests="${resource_to_tests} ${runtest}"
|
2020-12-04 12:09:27 +00:00
|
|
|
if [[ ${cnt} == "${MAX_NUMBERS_OF_PARALLEL_TASKS}" ]];then
|
2024-03-06 20:51:54 +00:00
|
|
|
test_resource_creation "${resource_to_tests}"
|
2020-12-04 12:09:27 +00:00
|
|
|
cnt=0
|
2024-03-06 20:51:54 +00:00
|
|
|
resource_to_tests=""
|
2020-12-04 12:09:27 +00:00
|
|
|
continue
|
|
|
|
fi
|
|
|
|
cnt=$((cnt+1))
|
|
|
|
done
|
2020-12-09 09:43:10 +00:00
|
|
|
|
2024-03-06 20:51:54 +00:00
|
|
|
# in case if there are some remaining resources
|
|
|
|
if [[ -n ${resource_to_tests} ]];then
|
|
|
|
test_resource_creation "${resource_to_tests}"
|
2020-12-09 09:43:10 +00:00
|
|
|
fi
|
2020-12-04 12:09:27 +00:00
|
|
|
}
|
|
|
|
|
2024-03-06 20:51:54 +00:00
|
|
|
test_resources "${all_stepactions}"
|
|
|
|
test_resources "${all_tests}"
|
2019-05-15 20:28:51 +00:00
|
|
|
|
|
|
|
success
|