Merge pull request #11291 from thockin/jenkins

Better handling of ginkgo args in jenkins
This commit is contained in:
Eric Tune 2015-07-15 15:00:51 -07:00
commit 8c891cfb70

View File

@ -28,6 +28,13 @@ set -o nounset
set -o pipefail set -o pipefail
set -o xtrace 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 "--------------------------------------------------------------------------------"
echo "Initial Environment:" echo "Initial Environment:"
printenv | sort printenv | sort
@ -66,40 +73,39 @@ if [[ "${KUBERNETES_PROVIDER}" == "aws" ]]; then
fi fi
# Specialized tests which should be skipped by default for projects. # Specialized tests which should be skipped by default for projects.
GCE_DEFAULT_SKIP_TEST_REGEX="\ GCE_DEFAULT_SKIP_TESTS=(
Skipped|\ "Skipped"
Reboot|\ "Reboot"
Restart|\ "Restart"
Example\ "Example"
" )
# The following tests are known to be flaky, and are thus run only in their own # The following tests are known to be flaky, and are thus run only in their own
# -flaky- build variants. # -flaky- build variants.
# NOTE: if you want the flaky test suite to be empty, you CANNOT leave the GCE_FLAKY_TESTS=()
# 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"
# Tests which are not able to be run in parallel. # Tests which are not able to be run in parallel.
GCE_PARALLEL_SKIP_TEST_REGEX="\ GCE_PARALLEL_SKIP_TESTS=(
${GCE_DEFAULT_SKIP_TEST_REGEX}\ ${GCE_DEFAULT_SKIP_TESTS[@]:+${GCE_DEFAULT_SKIP_TESTS[@]}}
|Etcd\ "Etcd"
|NetworkingNew\ "NetworkingNew"
|Nodes\sNetwork\ "Nodes\sNetwork"
|Nodes\sResize\ "Nodes\sResize"
|MaxPods\ "MaxPods"
|Shell.*services\ "Shell.*services"
" )
# Tests which are known to be flaky when run in parallel. # Tests which are known to be flaky when run in parallel.
GCE_PARALLEL_FLAKY_TEST_REGEX="\ GCE_PARALLEL_FLAKY_TESTS=(
Elasticsearch\ "Elasticsearch"
|PD\ "PD"
|ServiceAccounts\ "ServiceAccounts"
|Service\sendpoints\slatency\ "Service\sendpoints\slatency"
|Services.*change\sthe\stype\ "Services.*change\sthe\stype"
|Services.*functioning\sexternal\sload\sbalancer\ "Services.*functioning\sexternal\sload\sbalancer"
|Services.*identically\snamed\ "Services.*identically\snamed"
|Services.*release.*load\sbalancer\ "Services.*release.*load\sbalancer"
" )
# Define environment variables based on the Jenkins project name. # Define environment variables based on the Jenkins project name.
case ${JOB_NAME} in case ${JOB_NAME} in
@ -108,7 +114,10 @@ case ${JOB_NAME} in
: ${E2E_CLUSTER_NAME:="jenkins-gce-e2e"} : ${E2E_CLUSTER_NAME:="jenkins-gce-e2e"}
: ${E2E_DOWN:="false"} : ${E2E_DOWN:="false"}
: ${E2E_NETWORK:="e2e-gce"} : ${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"} : ${KUBE_GCE_INSTANCE_PREFIX="e2e-gce"}
: ${PROJECT:="k8s-jkns-e2e-gce"} : ${PROJECT:="k8s-jkns-e2e-gce"}
;; ;;
@ -118,7 +127,11 @@ case ${JOB_NAME} in
: ${E2E_CLUSTER_NAME:="jenkins-gce-e2e-flaky"} : ${E2E_CLUSTER_NAME:="jenkins-gce-e2e-flaky"}
: ${E2E_DOWN:="false"} : ${E2E_DOWN:="false"}
: ${E2E_NETWORK:="e2e-flaky"} : ${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"} : ${KUBE_GCE_INSTANCE_PREFIX:="e2e-flaky"}
: ${PROJECT:="k8s-jkns-e2e-gce-flaky"} : ${PROJECT:="k8s-jkns-e2e-gce-flaky"}
;; ;;
@ -128,7 +141,11 @@ case ${JOB_NAME} in
: ${E2E_CLUSTER_NAME:="jenkins-gce-e2e-parallel"} : ${E2E_CLUSTER_NAME:="jenkins-gce-e2e-parallel"}
: ${E2E_NETWORK:="e2e-parallel"} : ${E2E_NETWORK:="e2e-parallel"}
: ${GINKGO_PARALLEL:="y"} : ${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"} : ${KUBE_GCE_INSTANCE_PREFIX:="e2e-test-parallel"}
: ${PROJECT:="kubernetes-jenkins"} : ${PROJECT:="kubernetes-jenkins"}
# Override GCE defaults. # Override GCE defaults.
@ -140,7 +157,12 @@ case ${JOB_NAME} in
: ${E2E_CLUSTER_NAME:="parallel-flaky"} : ${E2E_CLUSTER_NAME:="parallel-flaky"}
: ${E2E_NETWORK:="e2e-parallel-flaky"} : ${E2E_NETWORK:="e2e-parallel-flaky"}
: ${GINKGO_PARALLEL:="y"} : ${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"} : ${KUBE_GCE_INSTANCE_PREFIX:="parallel-flaky"}
: ${PROJECT:="k8s-jkns-e2e-gce-prl-flaky"} : ${PROJECT:="k8s-jkns-e2e-gce-prl-flaky"}
# Override GCE defaults. # Override GCE defaults.
@ -178,7 +200,11 @@ case ${JOB_NAME} in
: ${GINKGO_PARALLEL:="y"} : ${GINKGO_PARALLEL:="y"}
# This list should match the list in kubernetes-e2e-gce-parallel. It # This list should match the list in kubernetes-e2e-gce-parallel. It
# currently also excludes a slow namespace test. # 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_GCE_INSTANCE_PREFIX:="pull-e2e-${EXECUTOR_NUMBER}"}
: ${KUBE_GCS_STAGING_PATH_SUFFIX:="-${EXECUTOR_NUMBER}"} : ${KUBE_GCS_STAGING_PATH_SUFFIX:="-${EXECUTOR_NUMBER}"}
: ${PROJECT:="kubernetes-jenkins-pull"} : ${PROJECT:="kubernetes-jenkins-pull"}
@ -196,7 +222,10 @@ case ${JOB_NAME} in
: ${E2E_CLUSTER_NAME:="jenkins-gce-e2e-release"} : ${E2E_CLUSTER_NAME:="jenkins-gce-e2e-release"}
: ${E2E_DOWN:="false"} : ${E2E_DOWN:="false"}
: ${E2E_NETWORK:="e2e-gce-release"} : ${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"} : ${KUBE_GCE_INSTANCE_PREFIX="e2e-gce"}
: ${PROJECT:="k8s-jkns-e2e-gce-release"} : ${PROJECT:="k8s-jkns-e2e-gce-release"}
;; ;;