The modules test app appears to be running with process.env.NODE_ENV equal
to "production" on Circle CI: https://circleci.com/gh/meteor/meteor/5030.
Enabling this transform in production as well as development is fine
because we primarily want to test that plugins from the "env" section of
.babelrc are respected, regardless of the value of process.env.NODE_ENV.
Using different plugins in production might be worth testing, too, but
that's less critical.
Follow-up to #8963.
The increased mongo connection timeout in 522d86dc4e
means that the we can decrease the "modules - test app" self-test
application start-up wait internval significantly (since mongo
will now start properly and the self-test can continue).
Certain self-test's like "modules - test app" are encountering
mongo connection timeout errors on some runs. Increasing the
connection timeout helps address these errors.
* Auto-install `meteor self-test` dependencies upon use.
This uses the same new facilities which were created for auto-installing
Cordova (#8976) to also auto-install PhantomJS and BrowserStack WebDriver npms
into their appropriate home in the dev bundle when they're needed for running
self-tests.
* Use a more descriptive name for the reference to the `require`-d npm module.
This switches Meteor's CircleCI builds from Circle 1.0 to Circle 2.0 which
has a bit more control over the workflow.
Currently, this eliminates the existing ci.sh script which was already a bit
incompatible when I was attempting to run Windows builds on another environment.
It's possible that we should change this to a Node.js wrapper script.
Other improvements:
- We now store Core Dumps in build artifacts. CircleCI 2.0 advertised this as
one of the features of CircleCI 2.0, but honestly, it was far from
straightforward. Perhaps if we were using another Dockerimage, but it was
far from as easy as flipping a switch. In addition to saving the Core Dump,
this also saves the Node.js binary which was included in the Dev Bundle. This
can be very handy for post-mortem debugging with tools like lldb, gdb, or mdb.
- Memory usage is now logged throughout the build via a background process which
logs `ps` output to a file which is persisted to the build artifacts. This
should help identify if builds are terminating for some environmental reason.
This reverts commit 4d37a05fb3.
After git bisecting between origin/release-1.5 and origin/release-1.5.2, I
identified this commit as the culprit in recent failures of the modules
test app: https://circleci.com/gh/meteor/meteor/4857#tests/containers/3
Note that the modules test app seems to be failing only on Linux, and it
does pass reliably with this commit reverted. It must have something to do
with Mongo failing to start, and thus the "App running at" message never
appears, but I don't have a good theory why that might be.
The command to run just the modules test app is
meteor self-test --history 1000 'modules - test app'
@zimme @hwillson @abernix any ideas?
* Include the Node.js and npm version in the `star.json` manifest.
This makes it possible to know exactly which version of Node.js and npm
were used by the `meteor` command from which the bundle was built from.
* History.md for #8956.