mirror of
https://github.com/meteor/meteor.git
synced 2026-05-02 03:01:46 -04:00
Based on this warning: npm ERR! As of npm@5, the npm cache self-heals from corruption issues and npm ERR! data extracted from the cache is guaranteed to be valid. If you npm ERR! want to make sure everything is consistent, use 'npm cache npm ERR! verify' instead. npm ERR! npm ERR! If you're sure you want to delete the entire cache, rerun this npm ERR! command with --force.
131 lines
3.8 KiB
Bash
Executable File
131 lines
3.8 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
#
|
|
# Optional Environment Variables for Configuration
|
|
#
|
|
# - TIMEOUT_SCALE_FACTOR: (default: 15)
|
|
# A multiplation factor that can be used to raise the wait-time on
|
|
# various longer-running tests. Useful for slower (or faster!) hardware.
|
|
# - ADDL_SELF_TEST_EXCLUDE: (optional)
|
|
# A regex or list of additional regexes to skip.
|
|
|
|
# Export this one so it's available in the node environment.
|
|
export TIMEOUT_SCALE_FACTOR=${TIMEOUT_SCALE_FACTOR:-15}
|
|
|
|
# Skip these tests always. Add other tests with ADDL_SELF_TEST_EXCLUDE.
|
|
SELF_TEST_EXCLUDE="^old cli tests|^minifiers can't register non-js|^minifiers: apps can't use|^compiler plugins - addAssets"
|
|
|
|
# If no SELF_TEST_EXCLUDE is defined, use those defined here by default
|
|
if ! [ -z "$ADDL_SELF_TEST_EXCLUDE" ]; then
|
|
SELF_TEST_EXCLUDE="${SELF_TEST_EXCLUDE}|${ADDL_SELF_TEST_EXCLUDE}"
|
|
fi
|
|
|
|
# Don't print as many progress indicators
|
|
export EMACS=t
|
|
|
|
export METEOR_HEADLESS=true
|
|
|
|
if [ -z "$CIRCLE_NODE_TOTAL" ] || [ -z "$CIRCLE_NODE_INDEX" ]; then
|
|
# In the case where these aren't set, just pretend like we're a single node.
|
|
# This is also handy if the user is using another CI service besides CircleCI
|
|
CIRCLE_NODE_TOTAL=1
|
|
CIRCLE_NODE_INDEX=0
|
|
|
|
echo "[warn] CIRCLE_NODE_TOTAL or CIRCLE_NODE_INDEX was not defined. \c"
|
|
echo "Running all tests!"
|
|
fi
|
|
|
|
# Since PhantomJS has been removed from dev_bundle/lib/node_modules
|
|
# (#6905), but self-test still needs it, install it now.
|
|
./meteor npm install -g phantomjs-prebuilt browserstack-webdriver
|
|
|
|
# Make sure we have initialized and updated submodules such as
|
|
# packages/non-core/blaze.
|
|
git submodule update --init --recursive
|
|
|
|
# run different jobs based on CicleCI parallel container index
|
|
should_run_test () {
|
|
test $(($1 % $CIRCLE_NODE_TOTAL)) -eq $CIRCLE_NODE_INDEX
|
|
}
|
|
|
|
# Keep track of errors, but let the tests all finish. This is necessary since
|
|
# more than one of the following tests may be executed from a single run if
|
|
# parallelism is lower than the number of tests.
|
|
exit_code=0
|
|
|
|
# Also, if any uncaught errors slip through, fail the build.
|
|
set -e
|
|
|
|
if should_run_test 0; then
|
|
echo "Running warehouse self-tests"
|
|
./meteor self-test --headless \
|
|
--with-tag "custom-warehouse" \
|
|
--exclude "$SELF_TEST_EXCLUDE" \
|
|
|| exit_code=$?
|
|
fi
|
|
|
|
if should_run_test 1; then
|
|
echo "Running self-test (1): A-Com"
|
|
./meteor self-test --headless \
|
|
--file "^[a-b]|^c[a-n]|^co[a-l]|^compiler-plugins" \
|
|
--without-tag "custom-warehouse" \
|
|
--exclude "$SELF_TEST_EXCLUDE" \
|
|
|| exit_code=$?
|
|
fi
|
|
|
|
if should_run_test 2; then
|
|
echo "Running self-test (2): Con-K"
|
|
./meteor self-test --headless \
|
|
--file "^co[n-z]|^c[p-z]|^[d-k]" \
|
|
--without-tag "custom-warehouse" \
|
|
--exclude "$SELF_TEST_EXCLUDE" \
|
|
|| exit_code=$?
|
|
fi
|
|
|
|
if should_run_test 3; then
|
|
echo "Running self-test (3): L-O"
|
|
./meteor self-test --headless \
|
|
--file "^[l-o]" \
|
|
--without-tag "custom-warehouse" \
|
|
--exclude "$SELF_TEST_EXCLUDE" \
|
|
|| exit_code=$?
|
|
fi
|
|
|
|
if should_run_test 4; then
|
|
echo "Running self-test (4): P"
|
|
./meteor self-test --headless \
|
|
--file "^p" \
|
|
--without-tag "custom-warehouse" \
|
|
--exclude "$SELF_TEST_EXCLUDE" \
|
|
|| exit_code=$?
|
|
fi
|
|
|
|
if should_run_test 5; then
|
|
echo "Running self-test (5): Run"
|
|
./meteor self-test --headless \
|
|
--file "^run" \
|
|
--without-tag "custom-warehouse" \
|
|
--exclude "$SELF_TEST_EXCLUDE" \
|
|
|| exit_code=$?
|
|
fi
|
|
|
|
if should_run_test 6; then
|
|
echo "Running self-test (6): R-S"
|
|
./meteor self-test --headless \
|
|
--file "^r(?!un)|^s" \
|
|
--without-tag "custom-warehouse" \
|
|
--exclude "$SELF_TEST_EXCLUDE" \
|
|
|| exit_code=$?
|
|
fi
|
|
|
|
if should_run_test 7; then
|
|
echo "Running self-test (7): Sp-Z"
|
|
./meteor self-test --headless \
|
|
--file "^[t-z]|^command-line" \
|
|
--without-tag "custom-warehouse" \
|
|
--exclude "$SELF_TEST_EXCLUDE" \
|
|
|| exit_code=$?
|
|
fi
|
|
|
|
exit $exit_code
|