mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
bd5c5373f1
Codecov has shown to be flaky, and calculate the wrong diff, in addition, it doesn't show coverage for integration tests, which makes the coverage report not useful. Removing it for now, while we look at alternatives. Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
322 lines
No EOL
11 KiB
Groovy
322 lines
No EOL
11 KiB
Groovy
def withGithubStatus(String context, Closure cl) {
|
|
def setGithubStatus = { String state ->
|
|
try {
|
|
def backref = "${BUILD_URL}flowGraphTable/"
|
|
def reposSourceURL = scm.repositories[0].getURIs()[0].toString()
|
|
step(
|
|
$class: 'GitHubCommitStatusSetter',
|
|
contextSource: [$class: "ManuallyEnteredCommitContextSource", context: context],
|
|
errorHandlers: [[$class: 'ShallowAnyErrorHandler']],
|
|
reposSource: [$class: 'ManuallyEnteredRepositorySource', url: reposSourceURL],
|
|
statusBackrefSource: [$class: 'ManuallyEnteredBackrefSource', backref: backref],
|
|
statusResultSource: [$class: 'ConditionalStatusResultSource', results: [[$class: 'AnyBuildResult', state: state]]],
|
|
)
|
|
} catch (err) {
|
|
echo "Exception from GitHubCommitStatusSetter for $context: $err"
|
|
}
|
|
}
|
|
|
|
setGithubStatus 'PENDING'
|
|
|
|
try {
|
|
cl()
|
|
} catch (err) {
|
|
// AbortException signals a "normal" build failure.
|
|
if (!(err instanceof hudson.AbortException)) {
|
|
echo "Exception in withGithubStatus for $context: $err"
|
|
}
|
|
setGithubStatus 'FAILURE'
|
|
throw err
|
|
}
|
|
setGithubStatus 'SUCCESS'
|
|
}
|
|
|
|
|
|
pipeline {
|
|
agent none
|
|
options {
|
|
buildDiscarder(logRotator(daysToKeepStr: '30'))
|
|
timeout(time: 3, unit: 'HOURS')
|
|
}
|
|
parameters {
|
|
booleanParam(name: 'janky', defaultValue: true, description: 'x86 Build/Test')
|
|
booleanParam(name: 'experimental', defaultValue: true, description: 'x86 Experimental Build/Test ')
|
|
booleanParam(name: 'z', defaultValue: true, description: 'IBM Z (s390x) Build/Test')
|
|
booleanParam(name: 'powerpc', defaultValue: true, description: 'PowerPC (ppc64le) Build/Test')
|
|
booleanParam(name: 'vendor', defaultValue: true, description: 'Vendor')
|
|
booleanParam(name: 'windowsRS1', defaultValue: true, description: 'Windows 2016 (RS1) Build/Test')
|
|
booleanParam(name: 'windowsRS5', defaultValue: true, description: 'Windows 2019 (RS5) Build/Test')
|
|
}
|
|
stages {
|
|
stage('Build') {
|
|
parallel {
|
|
stage('janky') {
|
|
when {
|
|
beforeAgent true
|
|
expression { params.janky }
|
|
}
|
|
agent {
|
|
node {
|
|
label 'ubuntu-1604-overlay2-stable'
|
|
}
|
|
}
|
|
steps {
|
|
withGithubStatus('janky') {
|
|
sh '''
|
|
# todo: include ip_vs in base image
|
|
sudo modprobe ip_vs
|
|
|
|
GITCOMMIT=$(git rev-parse --short HEAD)
|
|
docker build --rm --force-rm --build-arg APT_MIRROR=cdn-fastly.deb.debian.org -t docker:$GITCOMMIT .
|
|
|
|
docker run --rm -t --privileged \
|
|
-v "$WORKSPACE/bundles:/go/src/github.com/docker/docker/bundles" \
|
|
-v "$WORKSPACE/.git:/go/src/github.com/docker/docker/.git" \
|
|
--name docker-pr$BUILD_NUMBER \
|
|
-e DOCKER_GITCOMMIT=${GITCOMMIT} \
|
|
-e DOCKER_GRAPHDRIVER=vfs \
|
|
-e DOCKER_EXECDRIVER=native \
|
|
-e GIT_SHA1=${GIT_COMMIT} \
|
|
docker:$GITCOMMIT \
|
|
hack/ci/janky
|
|
'''
|
|
sh '''
|
|
GITCOMMIT=$(git rev-parse --short HEAD)
|
|
echo "Building e2e image"
|
|
docker build --build-arg DOCKER_GITCOMMIT=$GITCOMMIT -t moby-e2e-test -f Dockerfile.e2e .
|
|
'''
|
|
}
|
|
}
|
|
post {
|
|
always {
|
|
sh '''
|
|
echo "Ensuring container killed."
|
|
docker rm -vf docker-pr$BUILD_NUMBER || true
|
|
|
|
echo "Chowning /workspace to jenkins user"
|
|
docker run --rm -v "$WORKSPACE:/workspace" busybox chown -R "$(id -u):$(id -g)" /workspace
|
|
'''
|
|
sh '''
|
|
echo "Creating bundles.tar.gz"
|
|
(find bundles -name '*.log' -o -name '*.prof' -o -name integration.test | xargs tar -czf bundles.tar.gz) || true
|
|
'''
|
|
archiveArtifacts artifacts: 'bundles.tar.gz'
|
|
}
|
|
}
|
|
}
|
|
stage('experimental') {
|
|
when {
|
|
beforeAgent true
|
|
expression { params.experimental }
|
|
}
|
|
agent {
|
|
node {
|
|
label 'ubuntu-1604-aufs-stable'
|
|
}
|
|
}
|
|
steps {
|
|
withGithubStatus('experimental') {
|
|
sh '''
|
|
GITCOMMIT=$(git rev-parse --short HEAD)
|
|
docker build --rm --force-rm --build-arg APT_MIRROR=cdn-fastly.deb.debian.org -t docker:${GITCOMMIT}-exp .
|
|
|
|
docker run --rm -t --privileged \
|
|
-v "$WORKSPACE/bundles:/go/src/github.com/docker/docker/bundles" \
|
|
-e DOCKER_EXPERIMENTAL=y \
|
|
--name docker-pr-exp$BUILD_NUMBER \
|
|
-e DOCKER_GITCOMMIT=${GITCOMMIT} \
|
|
-e DOCKER_GRAPHDRIVER=vfs \
|
|
-e DOCKER_EXECDRIVER=native \
|
|
docker:${GITCOMMIT}-exp \
|
|
hack/ci/experimental
|
|
'''
|
|
}
|
|
}
|
|
post {
|
|
always {
|
|
sh '''
|
|
echo "Ensuring container killed."
|
|
docker rm -vf docker-pr-exp$BUILD_NUMBER || true
|
|
|
|
echo "Chowning /workspace to jenkins user"
|
|
docker run --rm -v "$WORKSPACE:/workspace" busybox chown -R "$(id -u):$(id -g)" /workspace
|
|
'''
|
|
sh '''
|
|
echo "Creating bundles.tar.gz"
|
|
(find bundles -name '*.log' -o -name '*.prof' -o -name integration.test | xargs tar -czf bundles.tar.gz) || true
|
|
'''
|
|
archiveArtifacts artifacts: 'bundles.tar.gz'
|
|
}
|
|
}
|
|
}
|
|
stage('z') {
|
|
when {
|
|
beforeAgent true
|
|
expression { params.z }
|
|
}
|
|
agent {
|
|
node {
|
|
label 's390x-ubuntu-1604'
|
|
}
|
|
}
|
|
steps {
|
|
withGithubStatus('z') {
|
|
sh '''
|
|
GITCOMMIT=$(git rev-parse --short HEAD)
|
|
|
|
test -f Dockerfile.s390x && \
|
|
docker build --rm --force-rm --build-arg APT_MIRROR=cdn-fastly.deb.debian.org -t docker-s390x:$GITCOMMIT -f Dockerfile.s390x . || \
|
|
docker build --rm --force-rm --build-arg APT_MIRROR=cdn-fastly.deb.debian.org -t docker-s390x:$GITCOMMIT -f Dockerfile .
|
|
|
|
docker run --rm -t --privileged \
|
|
-v "$WORKSPACE/bundles:/go/src/github.com/docker/docker/bundles" \
|
|
--name docker-pr-s390x$BUILD_NUMBER \
|
|
-e DOCKER_GRAPHDRIVER=vfs \
|
|
-e DOCKER_EXECDRIVER=native \
|
|
-e TIMEOUT="300m" \
|
|
-e DOCKER_GITCOMMIT=${GITCOMMIT} \
|
|
docker-s390x:$GITCOMMIT \
|
|
hack/ci/z
|
|
'''
|
|
}
|
|
}
|
|
post {
|
|
always {
|
|
sh '''
|
|
echo "Ensuring container killed."
|
|
docker rm -vf docker-pr-s390x$BUILD_NUMBER || true
|
|
|
|
echo "Chowning /workspace to jenkins user"
|
|
docker run --rm -v "$WORKSPACE:/workspace" s390x/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'
|
|
}
|
|
}
|
|
}
|
|
stage('powerpc') {
|
|
when {
|
|
beforeAgent true
|
|
expression { params.powerpc }
|
|
}
|
|
agent {
|
|
node {
|
|
label 'ppc64le-ubuntu-1604'
|
|
}
|
|
}
|
|
steps {
|
|
withGithubStatus('powerpc') {
|
|
sh '''
|
|
GITCOMMIT=$(git rev-parse --short HEAD)
|
|
|
|
test -f Dockerfile.ppc64le && \
|
|
docker build --rm --force-rm --build-arg APT_MIRROR=cdn-fastly.deb.debian.org -t docker-powerpc:$GITCOMMIT -f Dockerfile.ppc64le . || \
|
|
docker build --rm --force-rm --build-arg APT_MIRROR=cdn-fastly.deb.debian.org -t docker-powerpc:$GITCOMMIT -f Dockerfile .
|
|
|
|
docker run --rm -t --privileged \
|
|
-v "$WORKSPACE/bundles:/go/src/github.com/docker/docker/bundles" \
|
|
--name docker-pr-power$BUILD_NUMBER \
|
|
-e DOCKER_GRAPHDRIVER=vfs \
|
|
-e DOCKER_EXECDRIVER=native \
|
|
-e DOCKER_GITCOMMIT=${GITCOMMIT} \
|
|
-e TIMEOUT="180m" \
|
|
docker-powerpc:$GITCOMMIT \
|
|
hack/ci/powerpc
|
|
'''
|
|
}
|
|
}
|
|
post {
|
|
always {
|
|
sh '''
|
|
echo "Ensuring container killed."
|
|
docker rm -vf docker-pr-power$BUILD_NUMBER || true
|
|
|
|
echo "Chowning /workspace to jenkins user"
|
|
docker run --rm -v "$WORKSPACE:/workspace" ppc64le/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'
|
|
}
|
|
}
|
|
}
|
|
stage('vendor') {
|
|
when {
|
|
beforeAgent true
|
|
expression { params.vendor }
|
|
}
|
|
agent {
|
|
node {
|
|
label 'ubuntu-1604-aufs-stable'
|
|
}
|
|
}
|
|
steps {
|
|
withGithubStatus('vendor') {
|
|
sh '''
|
|
GITCOMMIT=$(git rev-parse --short HEAD)
|
|
|
|
docker build --rm --force-rm --build-arg APT_MIRROR=cdn-fastly.deb.debian.org -t dockerven:$GITCOMMIT .
|
|
|
|
docker run --rm -t --privileged \
|
|
--name dockerven-pr$BUILD_NUMBER \
|
|
-e DOCKER_GRAPHDRIVER=vfs \
|
|
-e DOCKER_EXECDRIVER=native \
|
|
-v "$WORKSPACE/.git:/go/src/github.com/docker/docker/.git" \
|
|
-e DOCKER_GITCOMMIT=${GITCOMMIT} \
|
|
-e TIMEOUT=120m dockerven:$GITCOMMIT \
|
|
hack/validate/vendor
|
|
'''
|
|
}
|
|
}
|
|
}
|
|
stage('windowsRS1') {
|
|
when {
|
|
beforeAgent true
|
|
expression { params.windowsRS1 }
|
|
}
|
|
agent {
|
|
node {
|
|
label 'windows-rs1'
|
|
customWorkspace 'c:\\gopath\\src\\github.com\\docker\\docker'
|
|
}
|
|
}
|
|
steps {
|
|
withGithubStatus('windowsRS1') {
|
|
powershell '''
|
|
$ErrorActionPreference = 'Stop'
|
|
.\\hack\\ci\\windows.ps1
|
|
exit $LastExitCode
|
|
'''
|
|
}
|
|
}
|
|
}
|
|
stage('windowsRS5-process') {
|
|
when {
|
|
beforeAgent true
|
|
expression { params.windowsRS5 }
|
|
}
|
|
agent {
|
|
node {
|
|
label 'windows-rs5'
|
|
customWorkspace 'c:\\gopath\\src\\github.com\\docker\\docker'
|
|
}
|
|
}
|
|
steps {
|
|
withGithubStatus('windowsRS5-process') {
|
|
powershell '''
|
|
$ErrorActionPreference = 'Stop'
|
|
.\\hack\\ci\\windows.ps1
|
|
exit $LastExitCode
|
|
'''
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |