From 58b22225c1a1728518c7fbbe52fe3a46fa9f982e Mon Sep 17 00:00:00 2001 From: Martin Staffa Date: Fri, 20 Oct 2017 16:11:23 +0200 Subject: [PATCH] chore(travis): split unit test into 'core' and 'jquery' "unit-core" consists of code+jqlite, module test, and promise A+ tests. "unit-jquery" is code+jquery "docs-app" includes unit and e2e tests Splitting the unit tests into more than one job makes it faster to rerun jobs that fail because Safari or Edge cannot complete the suite, which seemingly happens on random. --- .travis.yml | 5 ++-- scripts/travis/before_build.sh | 4 ++-- scripts/travis/build.sh | 43 ++++++++++++++++++++++++---------- 3 files changed, 35 insertions(+), 17 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4f75e03b30a9..8a39e7e244c2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,8 +15,9 @@ branches: env: matrix: - JOB=ci-checks - - JOB=unit BROWSER_PROVIDER=saucelabs - - JOB=docs-e2e BROWSER_PROVIDER=saucelabs + - JOB=unit-core BROWSER_PROVIDER=saucelabs + - JOB=unit-jquery BROWSER_PROVIDER=saucelabs + - JOB=docs-app BROWSER_PROVIDER=saucelabs - JOB=e2e TEST_TARGET=jqlite BROWSER_PROVIDER=saucelabs - JOB=e2e TEST_TARGET=jquery BROWSER_PROVIDER=saucelabs global: diff --git a/scripts/travis/before_build.sh b/scripts/travis/before_build.sh index df9e78fbb8e6..e1d83d7977ad 100755 --- a/scripts/travis/before_build.sh +++ b/scripts/travis/before_build.sh @@ -12,12 +12,12 @@ if [ "$JOB" != "ci-checks" ]; then fi # ci-checks and unit tests do not run against the packaged code -if [ "$JOB" != "ci-checks" ] && [ "$JOB" != "unit" ]; then +if [[ "$JOB" != "ci-checks" ]] && [[ "$JOB" != unit-* ]]; then grunt package fi # unit runs the docs tests too which need a built version of the code -if [ "$JOB" = "unit" ]; then +if [[ "$JOB" = unit-* ]]; then grunt bower grunt validate-angular-files grunt build diff --git a/scripts/travis/build.sh b/scripts/travis/build.sh index 860bf282a860..b4e0f4e29d46 100755 --- a/scripts/travis/build.sh +++ b/scripts/travis/build.sh @@ -2,8 +2,18 @@ set -e -export BROWSER_STACK_ACCESS_KEY=`echo $BROWSER_STACK_ACCESS_KEY | rev` -export SAUCE_ACCESS_KEY=`echo $SAUCE_ACCESS_KEY | rev` +export BROWSER_STACK_ACCESS_KEY +export SAUCE_ACCESS_KEY + +BROWSER_STACK_ACCESS_KEY=$(echo "$BROWSER_STACK_ACCESS_KEY" | rev) +SAUCE_ACCESS_KEY=$(echo "$SAUCE_ACCESS_KEY" | rev) + +BROWSERS="SL_Chrome,SL_Chrome-1,\ +SL_Firefox,SL_Firefox-1,\ +SL_Safari_8,SL_Safari_9,\ +SL_iOS,\ +SL_IE_9,SL_IE_10,SL_IE_11,\ +SL_EDGE,SL_EDGE-1" case "$JOB" in "ci-checks") @@ -17,18 +27,18 @@ case "$JOB" in yarn run commitplease -- "${TRAVIS_COMMIT_RANGE/.../..}" fi ;; - "unit") - if [[ "$BROWSER_PROVIDER" == "browserstack" ]]; then - BROWSERS="BS_Chrome,BS_Safari,BS_Firefox,BS_IE_9,BS_IE_10,BS_IE_11,BS_EDGE,BS_iOS_8,BS_iOS_9" - else - BROWSERS="SL_Chrome,SL_Chrome-1,SL_Firefox,SL_Firefox-1,SL_Safari_8,SL_Safari_9,SL_IE_9,SL_IE_10,SL_IE_11,SL_EDGE,SL_EDGE-1,SL_iOS" - fi - + "unit-core") grunt test:promises-aplus - grunt test:unit --browsers="$BROWSERS" --reporters=spec - grunt tests:docs --browsers="$BROWSERS" --reporters=spec + grunt test:jqlite --browsers="$BROWSERS" --reporters=spec + grunt test:modules --browsers="$BROWSERS" --reporters=spec ;; - "docs-e2e") + "unit-jquery") + grunt test:jquery --browsers="$BROWSERS" --reporters=spec + grunt test:jquery-2.2 --browsers="$BROWSERS" --reporters=spec + grunt test:jquery-2.1 --browsers="$BROWSERS" --reporters=spec + ;; + "docs-app") + grunt tests:docs --browsers="$BROWSERS" --reporters=spec grunt test:travis-protractor --specs="docs/app/e2e/**/*.scenario.js" ;; "e2e") @@ -71,6 +81,13 @@ case "$JOB" in fi ;; *) - echo "Unknown job type. Please set JOB=ci-checks, JOB=unit, JOB=deploy or JOB=e2e-*." + echo "Unknown job type. Please set JOB to one of\ + 'ci-checks',\ + 'unit-core',\ + 'unit-jquery',\ + 'docs-app',\ + 'e2e',\ + or\ + 'deploy'." ;; esac \ No newline at end of file