Enable arm64 Linux testing in CI
authorBruce Forstall <Bruce_Forstall@msn.com>
Wed, 22 Aug 2018 20:55:53 +0000 (13:55 -0700)
committerBruce Forstall <Bruce_Forstall@msn.com>
Wed, 19 Sep 2018 18:34:28 +0000 (11:34 -0700)
commitee09dcbd1b67267ef34fe72306802531db262a20
treeecf8273751ea23d3fd4a41906834a195437ea10e
parent2729d70615e959a7ad6505d0c8557f84054afda0
Enable arm64 Linux testing in CI

Testing is enabled on a set of Qualcomm Centriq arm64 servers running Ubuntu 16.04.
The set of jobs enabled almost matches the set run for arm32 Linux testing,
including innerloop, JIT and GC Stress, corefx, and R2R. Temporarily, the
innerloop jobs are commit jobs (invoked when a PR is merged) instead of
"default trigger" jobs (invoked when a PR is submitted), until we get more
experience with the robustness of the machines and jobs. The machines are
fast enough that they are not marked as "limited hardware" (like arm32 Linux
machines). That means that many jobs are run daily, not weekly, as periodic jobs.

Notes about the changes:
1. The Linux arm64 machines are managed by Helix, which allocates them to Jenkins.
2. The arm64 OS used has been renamed from "small_page_size" to "Ubuntu16.04". If we
add large page size machines, we'll need to add a differentiator.
3. The Jenkins "copy artifacts" plug-in runs ridiculously slowly on this hardware,
for unknown reasons, so we copy artifacts directly using "wget".
4. Tests are built using "build-test.sh" on the (cross) build machine; we don't use
Windows-built tests.
5. Added Jenkins archiving of build .log/.wrn/.err files.
6. Various tests were disabled in issues.targets, and with a new
arm64/corefx_linux_test_exclusions.txt file, to get jobs to run clean. (Several
issues have been opened to track these and other known failures.)

Commit migrated from https://github.com/dotnet/coreclr/commit/707e84e98920546264db5af4252509a3a54f6203
src/coreclr/build-test.sh
src/coreclr/netci.groovy
src/coreclr/tests/arm64/corefx_linux_test_exclusions.txt [new file with mode: 0644]
src/coreclr/tests/issues.targets
src/coreclr/tests/runtest.proj
src/coreclr/tests/runtest.py
src/coreclr/tests/tests.targets