|
@@ -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: 'arm64', defaultValue: true, description: 'ARM (arm64) 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')
|
|
@@ -756,6 +757,112 @@ pipeline {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ stage('arm64') {
|
|
|
+ when {
|
|
|
+ beforeAgent true
|
|
|
+ expression { params.arm64 }
|
|
|
+ }
|
|
|
+ agent { label 'arm64 && linux' }
|
|
|
+ environment {
|
|
|
+ TEST_SKIP_INTEGRATION_CLI = '1'
|
|
|
+ }
|
|
|
+
|
|
|
+ stages {
|
|
|
+ stage("Print info") {
|
|
|
+ steps {
|
|
|
+ sh 'docker version'
|
|
|
+ sh 'docker info'
|
|
|
+ sh '''
|
|
|
+ echo "check-config.sh version: ${CHECK_CONFIG_COMMIT}"
|
|
|
+ curl -fsSL -o ${WORKSPACE}/check-config.sh "https://raw.githubusercontent.com/moby/moby/${CHECK_CONFIG_COMMIT}/contrib/check-config.sh" \
|
|
|
+ && bash ${WORKSPACE}/check-config.sh || true
|
|
|
+ '''
|
|
|
+ }
|
|
|
+ }
|
|
|
+ stage("Build dev image") {
|
|
|
+ steps {
|
|
|
+ sh 'docker build --force-rm --build-arg APT_MIRROR -t docker:${GIT_COMMIT} .'
|
|
|
+ }
|
|
|
+ }
|
|
|
+ stage("Unit tests") {
|
|
|
+ steps {
|
|
|
+ sh '''
|
|
|
+ docker run --rm -t --privileged \
|
|
|
+ -v "$WORKSPACE/bundles:/go/src/github.com/docker/docker/bundles" \
|
|
|
+ --name docker-pr$BUILD_NUMBER \
|
|
|
+ -e DOCKER_EXPERIMENTAL \
|
|
|
+ -e DOCKER_GITCOMMIT=${GIT_COMMIT} \
|
|
|
+ -e DOCKER_GRAPHDRIVER \
|
|
|
+ -e VALIDATE_REPO=${GIT_URL} \
|
|
|
+ -e VALIDATE_BRANCH=${CHANGE_TARGET} \
|
|
|
+ docker:${GIT_COMMIT} \
|
|
|
+ hack/test/unit
|
|
|
+ '''
|
|
|
+ }
|
|
|
+ post {
|
|
|
+ always {
|
|
|
+ junit testResults: 'bundles/junit-report.xml', allowEmptyResults: true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ stage("Integration tests") {
|
|
|
+ environment { TEST_SKIP_INTEGRATION_CLI = '1' }
|
|
|
+ steps {
|
|
|
+ sh '''
|
|
|
+ docker run --rm -t --privileged \
|
|
|
+ -v "$WORKSPACE/bundles:/go/src/github.com/docker/docker/bundles" \
|
|
|
+ --name docker-pr$BUILD_NUMBER \
|
|
|
+ -e DOCKER_EXPERIMENTAL \
|
|
|
+ -e DOCKER_GITCOMMIT=${GIT_COMMIT} \
|
|
|
+ -e DOCKER_GRAPHDRIVER \
|
|
|
+ -e TESTDEBUG \
|
|
|
+ -e TEST_SKIP_INTEGRATION_CLI \
|
|
|
+ -e TIMEOUT \
|
|
|
+ -e VALIDATE_REPO=${GIT_URL} \
|
|
|
+ -e VALIDATE_BRANCH=${CHANGE_TARGET} \
|
|
|
+ docker:${GIT_COMMIT} \
|
|
|
+ hack/make.sh \
|
|
|
+ dynbinary \
|
|
|
+ test-integration
|
|
|
+ '''
|
|
|
+ }
|
|
|
+ post {
|
|
|
+ always {
|
|
|
+ junit testResults: 'bundles/**/*-report.xml', allowEmptyResults: true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ post {
|
|
|
+ always {
|
|
|
+ sh '''
|
|
|
+ echo "Ensuring container killed."
|
|
|
+ docker rm -vf docker-pr$BUILD_NUMBER || true
|
|
|
+ '''
|
|
|
+
|
|
|
+ sh '''
|
|
|
+ echo "Chowning /workspace to jenkins user"
|
|
|
+ docker run --rm -v "$WORKSPACE:/workspace" busybox chown -R "$(id -u):$(id -g)" /workspace
|
|
|
+ '''
|
|
|
+
|
|
|
+ catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE', message: 'Failed to create bundles.tar.gz') {
|
|
|
+ sh '''
|
|
|
+ bundleName=arm64-integration
|
|
|
+ echo "Creating ${bundleName}-bundles.tar.gz"
|
|
|
+ # exclude overlay2 directories
|
|
|
+ find bundles -path '*/root/*overlay2' -prune -o -type f \\( -name '*-report.json' -o -name '*.log' -o -name '*.prof' -o -name '*-report.xml' \\) -print | xargs tar -czf ${bundleName}-bundles.tar.gz
|
|
|
+ '''
|
|
|
+
|
|
|
+ archiveArtifacts artifacts: '*-bundles.tar.gz', allowEmptyArchive: true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ cleanup {
|
|
|
+ sh 'make clean'
|
|
|
+ deleteDir()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
stage('win-RS1') {
|
|
|
when {
|
|
|
beforeAgent true
|