StackGenVis: Alignment of Data, Algorithms, and Models for Stacking Ensemble Learning Using Performance Metrics
https://doi.org/10.1109/TVCG.2020.3030352
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
101 lines
2.3 KiB
101 lines
2.3 KiB
4 years ago
|
#!/bin/bash
|
||
|
|
||
|
# override CircleCi's default run settings
|
||
|
set +e
|
||
|
set +o pipefail
|
||
|
|
||
|
ROOT=$(dirname $0)/..
|
||
|
EXIT_STATE=0
|
||
|
MAX_AUTO_RETRY=5
|
||
|
|
||
|
log () {
|
||
|
echo -e "\n$1"
|
||
|
}
|
||
|
|
||
|
# inspired by https://unix.stackexchange.com/a/82602
|
||
|
retry () {
|
||
|
local n=1
|
||
|
|
||
|
until [ $n -ge $MAX_AUTO_RETRY ]; do
|
||
|
"$@" --failFast && break
|
||
|
log "run $n of $MAX_AUTO_RETRY failed, trying again ..."
|
||
|
n=$[$n+1]
|
||
|
done
|
||
|
|
||
|
if [ $n -eq $MAX_AUTO_RETRY ]; then
|
||
|
log "one last time, w/o failing fast"
|
||
|
"$@" && n=0
|
||
|
fi
|
||
|
|
||
|
if [ $n -eq $MAX_AUTO_RETRY ]; then
|
||
|
log "all $n runs failed, moving on."
|
||
|
EXIT_STATE=1
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
# set timezone to Alaska time (arbitrary timezone to test date logic)
|
||
|
set_tz () {
|
||
|
sudo cp /usr/share/zoneinfo/America/Anchorage /etc/localtime
|
||
|
export TZ='America/Anchorage'
|
||
|
}
|
||
|
|
||
|
case $1 in
|
||
|
|
||
|
jasmine)
|
||
|
set_tz
|
||
|
|
||
|
SUITE=$(circleci tests glob "$ROOT/test/jasmine/tests/*" | circleci tests split)
|
||
|
npm run test-jasmine -- $SUITE --skip-tags=gl,noCI,flaky || EXIT_STATE=$?
|
||
|
|
||
|
exit $EXIT_STATE
|
||
|
;;
|
||
|
|
||
|
jasmine2)
|
||
|
set_tz
|
||
|
|
||
|
SHARDS=($(node $ROOT/tasks/shard_jasmine_tests.js --limit=5 --tag=gl | circleci tests split))
|
||
|
for s in ${SHARDS[@]}; do
|
||
|
retry npm run test-jasmine -- "$s" --tags=gl --skip-tags=noCI --doNotFailOnEmptyTestSuite
|
||
|
done
|
||
|
|
||
|
exit $EXIT_STATE
|
||
|
;;
|
||
|
|
||
|
jasmine3)
|
||
|
set_tz
|
||
|
|
||
|
SHARDS=($(node $ROOT/tasks/shard_jasmine_tests.js --limit=1 --tag=flaky | circleci tests split))
|
||
|
|
||
|
for s in ${SHARDS[@]}; do
|
||
|
retry npm run test-jasmine -- "$s" --tags=flaky --skip-tags=noCI
|
||
|
done
|
||
|
|
||
|
exit $EXIT_STATE
|
||
|
;;
|
||
|
|
||
|
image)
|
||
|
SUITE=$(find $ROOT/test/image/mocks/ -type f -printf "%f\n" | circleci tests split)
|
||
|
npm run test-image -- $SUITE --filter --skip-flaky || EXIT_STATE=$?
|
||
|
exit $EXIT_STATE
|
||
|
;;
|
||
|
|
||
|
image2)
|
||
|
retry npm run test-image -- --just-flaky
|
||
|
npm run test-export || EXIT_STATE=$?
|
||
|
exit $EXIT_STATE
|
||
|
;;
|
||
|
|
||
|
bundle)
|
||
|
set_tz
|
||
|
npm run test-bundle || EXIT_STATE=$?
|
||
|
exit $EXIT_STATE
|
||
|
;;
|
||
|
|
||
|
syntax)
|
||
|
npm run lint || EXIT_STATE=$?
|
||
|
npm run test-syntax || EXIT_STATE=$?
|
||
|
exit $EXIT_STATE
|
||
|
;;
|
||
|
|
||
|
esac
|