Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Better handling of ginkgo args in jenkins #11291

Merged
merged 1 commit into from Jul 15, 2015
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
99 changes: 64 additions & 35 deletions hack/jenkins/e2e.sh
Expand Up @@ -28,6 +28,13 @@ set -o nounset
set -o pipefail
set -o xtrace

# Join all args with |
# Example: join_regex a b "c d" e => a|b|c d|e
function join_regex() {
local IFS="|"
echo "$*"
}

echo "--------------------------------------------------------------------------------"
echo "Initial Environment:"
printenv | sort
Expand Down Expand Up @@ -66,40 +73,39 @@ if [[ "${KUBERNETES_PROVIDER}" == "aws" ]]; then
fi

# Specialized tests which should be skipped by default for projects.
GCE_DEFAULT_SKIP_TEST_REGEX="\
Skipped|\
Reboot|\
Restart|\
Example\
"
GCE_DEFAULT_SKIP_TESTS=(
"Skipped"
"Reboot"
"Restart"
"Example"
)

# The following tests are known to be flaky, and are thus run only in their own
# -flaky- build variants.
# NOTE: if you want the flaky test suite to be empty, you CANNOT leave the
# regexp empty - this will cause running all tests in flaky suite and no tests
# in regular "gce" suite.
GCE_FLAKY_TEST_REGEX="DO\sNOT\sRUN\sANYTHING"
GCE_FLAKY_TESTS=()

# Tests which are not able to be run in parallel.
GCE_PARALLEL_SKIP_TEST_REGEX="\
${GCE_DEFAULT_SKIP_TEST_REGEX}\
|Etcd\
|NetworkingNew\
|Nodes\sNetwork\
|Nodes\sResize\
|MaxPods\
|Shell.*services\
"
GCE_PARALLEL_SKIP_TESTS=(
${GCE_DEFAULT_SKIP_TESTS[@]:+${GCE_DEFAULT_SKIP_TESTS[@]}}
"Etcd"
"NetworkingNew"
"Nodes\sNetwork"
"Nodes\sResize"
"MaxPods"
"Shell.*services"
)

# Tests which are known to be flaky when run in parallel.
GCE_PARALLEL_FLAKY_TEST_REGEX="\
Elasticsearch\
|PD\
|ServiceAccounts\
|Service\sendpoints\slatency\
|Services.*change\sthe\stype\
|Services.*functioning\sexternal\sload\sbalancer\
|Services.*identically\snamed\
|Services.*release.*load\sbalancer\
"
GCE_PARALLEL_FLAKY_TESTS=(
"Elasticsearch"
"PD"
"ServiceAccounts"
"Service\sendpoints\slatency"
"Services.*change\sthe\stype"
"Services.*functioning\sexternal\sload\sbalancer"
"Services.*identically\snamed"
"Services.*release.*load\sbalancer"
)

# Define environment variables based on the Jenkins project name.
case ${JOB_NAME} in
Expand All @@ -108,7 +114,10 @@ case ${JOB_NAME} in
: ${E2E_CLUSTER_NAME:="jenkins-gce-e2e"}
: ${E2E_DOWN:="false"}
: ${E2E_NETWORK:="e2e-gce"}
: ${GINKGO_TEST_ARGS:="--ginkgo.skip=${GCE_DEFAULT_SKIP_TEST_REGEX}|${GCE_FLAKY_TEST_REGEX}"}
: ${GINKGO_TEST_ARGS:="--ginkgo.skip=$(join_regex \
${GCE_DEFAULT_SKIP_TESTS[@]:+${GCE_DEFAULT_SKIP_TESTS[@]}} \
${GCE_FLAKY_TESTS[@]:+${GCE_FLAKY_TESTS[@]}} \
)"}
: ${KUBE_GCE_INSTANCE_PREFIX="e2e-gce"}
: ${PROJECT:="k8s-jkns-e2e-gce"}
;;
Expand All @@ -118,7 +127,11 @@ case ${JOB_NAME} in
: ${E2E_CLUSTER_NAME:="jenkins-gce-e2e-flaky"}
: ${E2E_DOWN:="false"}
: ${E2E_NETWORK:="e2e-flaky"}
: ${GINKGO_TEST_ARGS:="--ginkgo.skip=${GCE_DEFAULT_SKIP_TEST_REGEX} --ginkgo.focus=${GCE_FLAKY_TEST_REGEX}"}
: ${GINKGO_TEST_ARGS:="--ginkgo.skip=$(join_regex \
${GCE_DEFAULT_SKIP_TESTS[@]:+${GCE_DEFAULT_SKIP_TESTS[@]}} \
) --ginkgo.focus=$(join_regex \
${GCE_FLAKY_TESTS[@]:+${GCE_FLAKY_TESTS[@]}} \
)"}
: ${KUBE_GCE_INSTANCE_PREFIX:="e2e-flaky"}
: ${PROJECT:="k8s-jkns-e2e-gce-flaky"}
;;
Expand All @@ -128,7 +141,11 @@ case ${JOB_NAME} in
: ${E2E_CLUSTER_NAME:="jenkins-gce-e2e-parallel"}
: ${E2E_NETWORK:="e2e-parallel"}
: ${GINKGO_PARALLEL:="y"}
: ${GINKGO_TEST_ARGS:="--ginkgo.skip=${GCE_DEFAULT_SKIP_TEST_REGEX}|${GCE_PARALLEL_SKIP_TEST_REGEX}|${GCE_PARALLEL_FLAKY_TEST_REGEX}"}
: ${GINKGO_TEST_ARGS:="--ginkgo.skip=$(join_regex \
${GCE_DEFAULT_SKIP_TESTS[@]:+${GCE_DEFAULT_SKIP_TESTS[@]}} \
${GCE_PARALLEL_SKIP_TESTS[@]:+${GCE_PARALLEL_SKIP_TESTS[@]}} \
${GCE_PARALLEL_FLAKY_TESTS[@]:+${GCE_PARALLEL_FLAKY_TESTS[@]}} \
)"}
: ${KUBE_GCE_INSTANCE_PREFIX:="e2e-test-parallel"}
: ${PROJECT:="kubernetes-jenkins"}
# Override GCE defaults.
Expand All @@ -140,7 +157,12 @@ case ${JOB_NAME} in
: ${E2E_CLUSTER_NAME:="parallel-flaky"}
: ${E2E_NETWORK:="e2e-parallel-flaky"}
: ${GINKGO_PARALLEL:="y"}
: ${GINKGO_TEST_ARGS:="--ginkgo.skip=${GCE_DEFAULT_SKIP_TEST_REGEX}|${GCE_PARALLEL_SKIP_TEST_REGEX} --ginkgo.focus=${GCE_PARALLEL_FLAKY_TEST_REGEX}"}
: ${GINKGO_TEST_ARGS:="--ginkgo.skip=$(join_regex \
${GCE_DEFAULT_SKIP_TESTS[@]:+${GCE_DEFAULT_SKIP_TESTS[@]}} \
${GCE_PARALLEL_SKIP_TESTS[@]:+${GCE_PARALLEL_SKIP_TESTS[@]}} \
) --ginkgo.focus=$(join_regex \
${GCE_PARALLEL_FLAKY_TESTS[@]:+${GCE_PARALLEL_FLAKY_TESTS[@]}} \
)"}
: ${KUBE_GCE_INSTANCE_PREFIX:="parallel-flaky"}
: ${PROJECT:="k8s-jkns-e2e-gce-prl-flaky"}
# Override GCE defaults.
Expand Down Expand Up @@ -178,7 +200,11 @@ case ${JOB_NAME} in
: ${GINKGO_PARALLEL:="y"}
# This list should match the list in kubernetes-e2e-gce-parallel. It
# currently also excludes a slow namespace test.
: ${GINKGO_TEST_ARGS:="--ginkgo.skip=${GCE_DEFAULT_SKIP_TEST_REGEX}|${GCE_PARALLEL_SKIP_TEST_REGEX}|${GCE_PARALLEL_FLAKY_TEST_REGEX}"}
: ${GINKGO_TEST_ARGS:="--ginkgo.skip=$(join_regex \
${GCE_DEFAULT_SKIP_TESTS[@]:+${GCE_DEFAULT_SKIP_TESTS[@]}} \
${GCE_PARALLEL_SKIP_TESTS[@]:+${GCE_PARALLEL_SKIP_TESTS[@]}} \
${GCE_PARALLEL_FLAKY_TESTS[@]:+${GCE_PARALLEL_FLAKY_TESTS[@]}} \
)"}
: ${KUBE_GCE_INSTANCE_PREFIX:="pull-e2e-${EXECUTOR_NUMBER}"}
: ${KUBE_GCS_STAGING_PATH_SUFFIX:="-${EXECUTOR_NUMBER}"}
: ${PROJECT:="kubernetes-jenkins-pull"}
Expand All @@ -196,7 +222,10 @@ case ${JOB_NAME} in
: ${E2E_CLUSTER_NAME:="jenkins-gce-e2e-release"}
: ${E2E_DOWN:="false"}
: ${E2E_NETWORK:="e2e-gce-release"}
: ${GINKGO_TEST_ARGS:="--ginkgo.skip=${GCE_DEFAULT_SKIP_TEST_REGEX}|${GCE_FLAKY_TEST_REGEX}"}
: ${GINKGO_TEST_ARGS:="--ginkgo.skip=$(join_regex \
${GCE_DEFAULT_SKIP_TESTS[@]:+${GCE_DEFAULT_SKIP_TESTS[@]}} \
${GCE_FLAKY_TESTS[@]:+${GCE_FLAKY_TESTS[@]}} \
)"}
: ${KUBE_GCE_INSTANCE_PREFIX="e2e-gce"}
: ${PROJECT:="k8s-jkns-e2e-gce-release"}
;;
Expand Down