This is to prevent reusing the node_modules folder when there are
changes in the build system, which can affect the npm install step (like
upgrading the Node.js version).
In these tests, we create a temporary `ATOM_HOME` to avoid cluttering
the user's real `~/.atom` folder.
Adding a symlink to the real `compile-cache` was introduced to speed up
main process tests, so that the transpilation cache could be reused.
Unfortunately, when the real `~/.atom` folder did not exist (such as on
a pristine environment on CI), it would confuse Atom, which would think
that it didn't need to re-create a `compile-cache` folder again, but
wouldn't be able to write to it because the symlink pointed to a
non-existant directory.
Main process tests were overhauled and made faster recently, so we can
safely remove this performance optimization.
For some reason, one main process test fails when run in a different
container than the one in which Atom was built. These tests are pretty
quick, so their impact on parallelism should be negligible.
On release branches, we can't upload crash dumps because they will leak
secret environment variables. So instead we will upload them to our S3
bucket with 'private' ACL. They can then be manually retrieved via the
AWS CLI with our private credentials.
This seems like a more robust test than the isRelease variable I was
testing previously. Our goal is to not leak secrets such as the S3 key,
so this is a more direct test of that.
Before we run script/bootstrap on the macOS build, the preceding build
step installs npm 6.2.0 as the global npm version. It installs npm at
`/usr/local/bin/npm`. However, a _different_ version of npm appears
earlier in the PATH. The PATH looks like this:
```
/Users/vsts/hostedtoolcache/node/8.9.3/x64/bin:
/usr/local/lib/ruby/gems/2.6.0/bin:
/usr/local/opt/ruby/bin:
/usr/local/opt/curl/bin:
/usr/local/bin:
/usr/local/sbin:
/Users/vsts/bin:
/Users/vsts/.yarn/bin:
/usr/local/go/bin:
/Users/vsts/Library/Android/sdk/tools:
/Users/vsts/Library/Android/sdk/platform-tools:
/Users/vsts/Library/Android/sdk/ndk-bundle:
/Library/Frameworks/Mono.framework/Versions/Current/Commands:
/usr/bin:
/bin:
/usr/sbin:
/sbin:
/Users/vsts/.azcopy
```
There's an npm executable at
/Users/vsts/hostedtoolcache/node/8.9.3/x64/bin/npm.
To get the build to use the global version of npm, this commit puts
/usr/local/bin at the beginning of the PATH.