diff --git a/Jenkinsfile b/Jenkinsfile index 46d9d41223..e8eca85c11 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,6 +10,7 @@ pipeline { parameters { booleanParam(name: 'unit_validate', defaultValue: true, description: 'amd64 (x86_64) unit tests and vendor check') booleanParam(name: 'amd64', defaultValue: true, description: 'amd64 (x86_64) Build/Test') + booleanParam(name: 'aarch64', defaultValue: true, description: 'ARM (aarch64) Build/Test') booleanParam(name: 's390x', defaultValue: true, description: 'IBM Z (s390x) Build/Test') booleanParam(name: 'ppc64le', defaultValue: true, description: 'PowerPC (ppc64le) Build/Test') booleanParam(name: 'windowsRS1', defaultValue: false, description: 'Windows 2016 (RS1) Build/Test') @@ -883,5 +884,44 @@ pipeline { } } } + stage('aarch64') { + when { + beforeAgent true + expression { params.aarch64 } + } + agent { label 'aarch64 && packet' } + steps { + sh ''' + GITCOMMIT=$(git rev-parse --short HEAD) + + docker build --rm --force-rm --build-arg APT_MIRROR=cdn-fastly.deb.debian.org -t docker-aarch64:$GITCOMMIT -f Dockerfile . + + docker run --rm -t --privileged \ + -v "$WORKSPACE/bundles:/go/src/github.com/docker/docker/bundles" \ + --name docker-pr-aarch64$BUILD_NUMBER \ + -e DOCKER_GRAPHDRIVER=vfs \ + -e DOCKER_EXECDRIVER=native \ + -e DOCKER_GITCOMMIT=${GITCOMMIT} \ + docker-aarch64:$GITCOMMIT \ + hack/ci/arm + ''' + } + post { + always { + sh ''' + echo "Ensuring container killed." + docker rm -vf docker-pr-aarch64$BUILD_NUMBER || true + + echo "Chowning /workspace to jenkins user" + docker run --rm -v "$WORKSPACE:/workspace" aarch64/busybox chown -R "$(id -u):$(id -g)" /workspace + ''' + sh ''' + echo "Creating bundles.tar.gz" + find bundles -name '*.log' | xargs tar -czf bundles.tar.gz + ''' + archiveArtifacts artifacts: 'bundles.tar.gz' + } + } + } } }