spec: improve rspec-tests.sh

Change-Id: Ic7af36d9d18aa94e83d2efdbdeaf8c8f35b90aa2
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/240311
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
This commit is contained in:
Derek Bender 2020-06-16 08:17:23 -05:00
parent b54209319b
commit 1cabb02b1c
1 changed files with 16 additions and 8 deletions

View File

@ -1,13 +1,21 @@
#!/bin/bash
set -o errexit -o errtrace -o pipefail -o xtrace
set -o nounset -o errexit -o errtrace -o pipefail -o xtrace
# calculate which group to run
max=$((CI_NODE_TOTAL*DOCKER_PROCESSES))
group=$(((max-CI_NODE_TOTAL*TEST_PROCESS)-CI_NODE_INDEX))
max=$((CI_NODE_TOTAL * DOCKER_PROCESSES))
group=$(((max-CI_NODE_TOTAL * TEST_PROCESS) - CI_NODE_INDEX))
maybeOnlyFailures=()
[ "${1-}" = 'only-failures' ] && maybeOnlyFailures=("--test-options" "'--only-failures'")
if [ "${1-}" = 'only-failures' ]; then
bundle exec parallel_rspec ./ --pattern $TEST_PATTERN --exclude-pattern $EXCLUDE_TESTS -n $max --only-group $group --verbose --group-by runtime --runtime-log parallel_runtime_rspec.log --test-options '--only-failures'
else
bundle exec parallel_rspec ./ --pattern $TEST_PATTERN --exclude-pattern $EXCLUDE_TESTS -n $max --only-group $group --verbose --group-by runtime --runtime-log parallel_runtime_rspec.log
fi
# we want actual globbing of individual elements for passing argument literals
# shellcheck disable=SC2068
bundle exec parallel_rspec . \
--pattern "$TEST_PATTERN" \
--exclude-pattern "$EXCLUDE_TESTS" \
-n "$max" \
--only-group "$group" \
--verbose \
--group-by runtime \
--runtime-log parallel_runtime_rspec.log \
${maybeOnlyFailures[@]}