Commit 0e521abd3fff87bd2be6707052f72cf89b49391c

Edward Thomson 2018-10-21T09:15:24

ci: introduce nightly arm docker builds Use multiarch arm32 and arm64 docker images to run Xenial-based images for those platforms. We can support all the tests on ARM32 and 64 _except_ the proxy-based tests. Our proxy on ARM seems regrettably unstable, either due to some shoddy dependencies (with native code?) or the JREs themselves. Run these platforms as part of our nightly builds; do not run them during pull request or CI validation.

diff --git a/azure-pipelines/docker.yml b/azure-pipelines/docker.yml
index e925104..2744a63 100644
--- a/azure-pipelines/docker.yml
+++ b/azure-pipelines/docker.yml
@@ -1,5 +1,9 @@
 # These are the steps used in a container-based build in VSTS.
 steps:
+- ${{ if eq(parameters.qemu, 'true') }}:
+  - script: docker run --rm --privileged multiarch/qemu-user-static:register --reset
+    displayName: 'Register Docker QEMU'
+
 - task: docker@0
   displayName: Build
   inputs:
diff --git a/azure-pipelines/nightly.yml b/azure-pipelines/nightly.yml
index 4d6d8a3..ab499a6 100644
--- a/azure-pipelines/nightly.yml
+++ b/azure-pipelines/nightly.yml
@@ -2,6 +2,34 @@ resources:
 - repo: self
 
 jobs:
+- job: linux_arm32_xenial_gcc_openssl
+  displayName: 'Linux (arm32; Xenial; GCC; OpenSSL)'
+  pool:
+    vmImage: 'Ubuntu 16.04'
+  steps:
+  - template: docker.yml
+    parameters:
+      qemu: 'true'
+      imageName: 'libgit2/xenial-arm32:test'
+      environmentVariables: |
+       CC=gcc
+       CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL
+       SKIP_PROXY_TESTS=true
+
+- job: linux_arm64_xenial_gcc_openssl
+  displayName: 'Linux (arm64; Xenial; GCC; OpenSSL)'
+  pool:
+    vmImage: 'Ubuntu 16.04'
+  steps:
+  - template: docker.yml
+    parameters:
+      qemu: 'true'
+      imageName: 'libgit2/xenial-arm64:test'
+      environmentVariables: |
+       CC=gcc
+       CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL
+       SKIP_PROXY_TESTS=true
+
 - job: coverity
   displayName: 'Coverity'
   pool: