Commit Graph

44 Commits

Author SHA1 Message Date
Ben Newman
c61c75b0e8 Include checksum of meteor script in .babel-cache CircleCI cache key. 2019-09-19 10:51:51 -04:00
Ben Newman
06b5f32215 Make meteor npx tsc run without errors, and test it.
This makes type checking possible without an external tool like VSCode.
2019-07-15 11:16:58 -04:00
Ben Newman
0a08d59a22 Update meteor/circleci Docker image to Android API v27.
Should fix Circle CI tests that have been failing because the Android
license was not accepted: https://circleci.com/gh/meteor/meteor/30908
2019-01-31 12:47:12 -05:00
James Burgess
30df020c9d Cache fetch and mongo-decimal npm dependencies and bump key versions (#10091) 2018-07-20 17:39:42 -07:00
James Miller Burgess
4e22a7c086 Bump npm deps cache version numbers
With the addition of inter-process-messaging npm deps to the cache, but
no change in the shrinkwrap checksum, the cache will not get updated
until we either change any of the shrinkwrap files or change the cache
keys. So I'm bumping the version numbers to do the latter.
2018-07-19 18:28:12 -04:00
James Miller Burgess
fcc5101812 Cache inter-process-messaging dependencies in circleci
Also, fix some whitespace issues that I probably caused!
2018-07-19 18:28:11 -04:00
James Burgess
35b850d6f5 Cache npm dependencies from meteor packages in CircleCI (#9785) 2018-07-18 07:56:39 -07:00
Jesse Rosenberger
a0578e90e3 Pass the --phantom flag on all self-test runs, to always test Phantom.
Without the `--phantom` flag passed to the `meteor self-test` command, the
client tests within those self-test test definitions will only be run on
Chrome Headless.

We might want to consider making it the default, so it runs without an
additional argument on local development as well, but this will make sure
that these important Phantom tests run in CircleCI to ensure we're testing
both modern and legacy browsers (of which the later group includes
PhantomJS, in all its "legacy" glory).

cc @hwillson @benjamn for input.
2018-07-11 12:17:35 -07:00
Jesse Rosenberger
382e0f0762 Remove dependency installation which is now bundled into CircleCI Docker image.
These are now built into the CircleCI image we already use
(meteor/circleci), thanks to the changes in meteor/circleci#1.
2018-07-11 10:41:15 -07:00
Toine van Kampen
499bb7ea25 Merge remote-tracking branch 'meteor/devel' into devel
Rebaseline
2018-06-06 20:28:03 +10:00
Ben Newman
898fb692ce Clear npm cache before running --get-ready. 2018-04-24 11:11:36 -04:00
Ben Newman
1e8846d155 Stop passing --expose-gc to Node during Circle CI tests.
Related: 90e4d7dc7b
2018-04-24 09:51:17 -04:00
Ben Newman
99a72dee4b Stop setting lower ulimit on file descriptors in Circle CI containers.
Now that we're using containers rather than physical machines, the default
value of `ulimit -n` is 65536, which is much greater than 4096.
2018-04-24 09:51:17 -04:00
Ben Newman
622c3d48bc Fix Circle CI memory logging when $USER undefined. 2018-04-24 09:51:17 -04:00
Ben Newman
a33bc72b21 Avoid using cached .babel-cache and .meteor from other branches.
https://github.com/meteor/meteor/pull/9826#issuecomment-382758704

cc @abernix @hwillson @jamesmillerburgess
2018-04-19 10:34:15 -04:00
Ben Newman
38e6a88ba6 Allow versioning of Circle CI cache keys.
This should also trigger a rebuild without the cache, which may fix some
recent hard-to-reproduce test failures.
2018-04-18 19:18:43 -04:00
Toine van Kampen
ee47ff56d8 Update CircleCi
Add config to ensure Chrome runs correctly
2018-04-14 12:47:53 +10:00
James Burgess
3b7c237ef8 Improve CircleCI caching strategy (#9728) 2018-03-21 11:50:56 -04:00
James Burgess
273f21a0b2 Automate rebalancing of CircleCI test groups (#9656) 2018-03-07 11:38:19 -05:00
Ben Newman
1d5da46afc Merge pull request #9627 from jamesmillerburgess/faster-circleci-workflow
Faster CircleCI workflow
2018-02-06 20:13:19 -05:00
Jesse Rosenberger
d6e1497350 Replace the Hexo test commands with new docs "npm test" script.
As implemented now on the meteor/docs repository.

Ref: https://github.com/meteor/docs/commit/af003a80bdf7f17f8ee0e95289add
2018-02-06 17:48:22 +02:00
James Burgess
3ba41108c4 Expand CircleCI groups to 12 and rebalance tests 2018-02-03 11:57:36 +01:00
Jesse Rosenberger
06c90caf8a Attempt to generate "docs" during CircleCI tests.
There have been a number of occasions where I have gone to bump the
Meteor docs to the next major version, only to find that the docs
deployment (which occurs in a separate repository; found at
https://github.com/meteor/docs) fails due to code-refactoring which has
taken place in its submodule (`code`, which is this Meteor codebase).

In order to provide early warning when a JSDoc declaration in the Meteor
code is going to (eventually) break the docs deployment which occurs in
a separate repository (https://github.com/meteor/docs), this commit
introduces a simple checkout and doc generation, in the same manner as
the docs would in its own repository, within the CircleCI workflow.

It's been configured in a way where it will not stop the normal Meteor
test-suite from running, however it will show a separate indicator on
GitHub pull-requests as to whether the generation of docs was successful
or not.
2018-01-29 20:35:09 +02:00
Hugh Willson
540dc00230 Add a self-test skip option (#9579)
* Add a self-test skip option

Meteor's CI infrastructure is configured to exclude certain
`self-test`'s on each run. These excludes are specified in
each CI environment's config file, and included when running
`meteor self-test`. Developers running `meteor self-test`
locally however are not using these excludes by default,
so developer's have to manually look up the current exclude
list from one of the CI configs, then add these excludes to
their own `meteor self-test` call manually.

This commit adds a new `skip` option to Meteor's `self-test`
system, that can be used to skip adding/running a defined
`self-test` (similar in concept to Mocha's `skip` feature).
This provides a way to skip the running of older
`self-test`'s that are no longer needed, but allows them to
be preserved in the `self-test` suite, for future reference.
With this functionality in place, and the older test suites
updated to use it, Meteor's base CI excludes no longer need
to be maintained in their respective config files. The
excludes are all managed at the source (the test definition),
and can be leveraged by anyone/anything calling
`meteor self-test`.

* Log message describing skipped test

* Add manually-ignored count to self-test summary

* Small comment correction

* History.md entry with PR link
2018-01-29 14:25:09 +02:00
Jesse Rosenberger
4a4b3dd2ed Bake the locale into the CircleCI build image. 2018-01-11 11:57:31 -05:00
Jesse Rosenberger
34ce287d31 Use a custom base image for CircleCI tests.
In order to install Gradle, which is required for Cordova tests to run
in the Meteor self-test suite, this image slightly builds upon the
CircleCI image we'd been using previously.
2018-01-11 11:57:31 -05:00
Ben Newman
fc822ce1e0 Attempt to run Circle CI tests in Docker containers with Android.
This is potentially a big change, though it should (with any luck) make
tests faster, and allow us to better test Cordova functionality (at least
as far as Android is concerned). For example, if this works, we won't have
to mark the "cordova builds with server options" self-test "slow" again,
which would (re)disable it during Circle CI test runs.

cc @abernix @hwillson
2018-01-11 11:57:31 -05:00
Jesse Rosenberger
9b056f5e91 Merge pull request #9341 from meteor/glasser/progress-status-only
Improved console behavior within the Emacs shell, and also general
Console refactoring to modernize ECMAScript use and remove Underscore.
2017-12-13 20:14:13 +02:00
Jesse Rosenberger
7268fb8ca0 Improve Emacs shell support by auto-detecting Emacs.
This adds a memoized helper function for detecting Emacs throughout the
CLI tool and automatically resorts to "ProgressDisplayStatus" mode when
Emacs is enabled.

In my tests with both Emacs 22 and 27, this nearly doubled performance
when using Meteor from within the Emacs shell (i.e. `M-x shell`).
2017-12-12 17:19:16 +02:00
Jesse Rosenberger
74aa18b253 Merge pull request #9364 from meteor/abernix/decompose-self-test
Decompose self-test logic into separate files.
2017-12-04 17:03:22 +02:00
Jesse Rosenberger
1a52d77a40 Change the memuse.txt artifact on CircleCI to be more compact. 2017-11-29 23:40:58 +02:00
Jesse Rosenberger
3c1ab6a3a7 Merge branch 'devel' into abernix/decompose-self-test 2017-11-29 22:28:01 +02:00
Jesse Rosenberger
204270694c Add support for a --retries flag to meteor self-test.
While running the tests three times might make a lot of sence in CI
environments, it certainly slows things down in development, especially
when you've failed a test on purpose, but still have to wait for it to
run three times to get the output.

This not only implements the `--retries` flag, but also activates it in
both CircleCI and AppVeyor test suites.
2017-11-23 18:39:34 +02:00
Jesse Rosenberger
7117d30e0f Stop pre-installing phantomjs-prebuilt and browserstack-webdriver.
While this was necessary in previous versions of Meteor, as of 1.6 the
`self-test` tooling will automatically install the dependencies it needs
at runtime.

Not only does this allow the installation to be avoided when tests using
those facilities aren't invoked, it also allows us to reliably install
the same version of these npms, rather than falling back to the
`latest` npm tag on each CI run.
2017-11-14 16:52:34 +02:00
Jesse Rosenberger
9e3945dc9a Add missing character to circle.yml configuration.
This was preventing the proper group name from being displayed on test
group "2", though the test was still working properly.

Refs: https://github.com/meteor/meteor/pull/9190 where it was spotted.
2017-10-10 10:23:17 +03:00
Ben Newman
bce7129712 Stop setting METEOR_DISABLE_OPTIMISTIC_CACHING=1 in Circle CI.
Since 8c70716954, optimistic file watching
uses far fewer file descriptors, so the original motivation of setting
this environment variable no longer holds.
2017-09-22 09:40:09 -04:00
Ben Newman
6abd102648 Bump the ./meteor --get-ready time limit. 2017-08-22 21:58:24 -04:00
Ben Newman
05c8627be9 Run ./meteor --get-ready instead of just ./meteor --help.
A while back we switched from running `./meteor --get-ready`, a command
that takes many minutes and sometimes runs out of memory, to just running
`./meteor --help` to prepare for self-tests.

The hope was that `./meteor --help` would fail less often, and the work
that would have been done by `./meteor --get-ready` would be spread out
through the actual tests. This helped, I think, but we've been seeing
quite a few self-test failures due to unreliable timing of the actual
tests, so I'd like to try shifting the balance back.

I'm pushing this to the branch with our patched Node 4.8.4, because
that branch should have a lower risk of segmentation faults, which may
allow `./meteor --get-ready` to succeed more often.

This is a bit of a shot in the dark, admittedly, but I want to see what
happens. 🤞
2017-08-22 19:26:55 -04:00
Ben Newman
7654d93b1a Run printenv before every self-test group, to verify env vars. 2017-08-22 16:40:23 -04:00
Ben Newman
12987a0926 Double test timeouts to cope with recent Circle CI flakiness. 2017-08-22 15:05:57 -04:00
Ben Newman
d2213f0288 Merge branch 'devel' into release-1.5.2 2017-08-17 10:08:20 -04:00
Jesse Rosenberger
5626ad7dee JUnit support for meteor self-test test runner. (#9014) 2017-08-16 11:21:07 -04:00
Ben Newman
e777c4d6f6 Force clearing the npm cache before Circle CI tests. 2017-08-08 19:11:42 -04:00
Jesse Rosenberger
3b2e0b6dbc Switch to using CircleCI 2.0 and various other test improvements. (#8985)
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.
2017-08-04 10:00:09 -07:00