|
@@ -9,8 +9,6 @@ pipeline {
|
|
|
}
|
|
|
parameters {
|
|
|
booleanParam(name: 'arm64', defaultValue: true, description: 'ARM (arm64) Build/Test')
|
|
|
- booleanParam(name: 's390x', defaultValue: false, description: 'IBM Z (s390x) Build/Test')
|
|
|
- booleanParam(name: 'ppc64le', defaultValue: false, description: 'PowerPC (ppc64le) Build/Test')
|
|
|
booleanParam(name: 'dco', defaultValue: true, description: 'Run the DCO check')
|
|
|
}
|
|
|
environment {
|
|
@@ -51,406 +49,6 @@ pipeline {
|
|
|
}
|
|
|
stage('Build') {
|
|
|
parallel {
|
|
|
- stage('s390x') {
|
|
|
- when {
|
|
|
- beforeAgent true
|
|
|
- // Skip this stage on PRs unless the checkbox is selected
|
|
|
- anyOf {
|
|
|
- not { changeRequest() }
|
|
|
- expression { params.s390x }
|
|
|
- }
|
|
|
- }
|
|
|
- agent { label 's390x-ubuntu-2004' }
|
|
|
-
|
|
|
- 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 -t docker:${GIT_COMMIT} .
|
|
|
- '''
|
|
|
- }
|
|
|
- }
|
|
|
- stage("Unit tests") {
|
|
|
- steps {
|
|
|
- sh '''
|
|
|
- sudo modprobe ip6table_filter
|
|
|
- '''
|
|
|
- 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_INTEGRATION_USE_SNAPSHOTTER \
|
|
|
- -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=s390x-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('s390x integration-cli') {
|
|
|
- when {
|
|
|
- beforeAgent true
|
|
|
- // Skip this stage on PRs unless the checkbox is selected
|
|
|
- anyOf {
|
|
|
- not { changeRequest() }
|
|
|
- expression { params.s390x }
|
|
|
- }
|
|
|
- }
|
|
|
- agent { label 's390x-ubuntu-2004' }
|
|
|
-
|
|
|
- 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 -t docker:${GIT_COMMIT} .
|
|
|
- '''
|
|
|
- }
|
|
|
- }
|
|
|
- stage("Integration-cli tests") {
|
|
|
- environment { TEST_SKIP_INTEGRATION = '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_GITCOMMIT=${GIT_COMMIT} \
|
|
|
- -e DOCKER_GRAPHDRIVER \
|
|
|
- -e TEST_INTEGRATION_USE_SNAPSHOTTER \
|
|
|
- -e TEST_SKIP_INTEGRATION \
|
|
|
- -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=s390x-integration-cli
|
|
|
- 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('ppc64le') {
|
|
|
- when {
|
|
|
- beforeAgent true
|
|
|
- // Skip this stage on PRs unless the checkbox is selected
|
|
|
- anyOf {
|
|
|
- not { changeRequest() }
|
|
|
- expression { params.ppc64le }
|
|
|
- }
|
|
|
- }
|
|
|
- agent { label 'ppc64le-ubuntu-1604' }
|
|
|
-
|
|
|
- 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 buildx build --load --force-rm -t docker:${GIT_COMMIT} .
|
|
|
- '''
|
|
|
- }
|
|
|
- }
|
|
|
- stage("Unit tests") {
|
|
|
- steps {
|
|
|
- sh '''
|
|
|
- sudo modprobe ip6table_filter
|
|
|
- '''
|
|
|
- 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_INTEGRATION_USE_SNAPSHOTTER \
|
|
|
- -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=ppc64le-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('ppc64le integration-cli') {
|
|
|
- when {
|
|
|
- beforeAgent true
|
|
|
- // Skip this stage on PRs unless the checkbox is selected
|
|
|
- anyOf {
|
|
|
- not { changeRequest() }
|
|
|
- expression { params.ppc64le }
|
|
|
- }
|
|
|
- }
|
|
|
- agent { label 'ppc64le-ubuntu-1604' }
|
|
|
-
|
|
|
- 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 buildx build --load --force-rm -t docker:${GIT_COMMIT} .
|
|
|
- '''
|
|
|
- }
|
|
|
- }
|
|
|
- stage("Integration-cli tests") {
|
|
|
- environment { TEST_SKIP_INTEGRATION = '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_GITCOMMIT=${GIT_COMMIT} \
|
|
|
- -e DOCKER_GRAPHDRIVER \
|
|
|
- -e TEST_INTEGRATION_USE_SNAPSHOTTER \
|
|
|
- -e TEST_SKIP_INTEGRATION \
|
|
|
- -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=ppc64le-integration-cli
|
|
|
- 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('arm64') {
|
|
|
when {
|
|
|
beforeAgent true
|