diff options
author | Runar Borge <runar@borge.nu> | 2020-01-01 10:59:40 +0100 |
---|---|---|
committer | Runar Borge <runar@borge.nu> | 2020-01-03 18:55:58 +0100 |
commit | a7bb0a8021366b5883b947157e9989cf356d9d36 (patch) | |
tree | c0d2dd2696f749f5b3eea1a998223fe6e10888e0 /Jenkinsfile | |
parent | de4805055f2cec53af0e80e9d742bc13d9e2bc4d (diff) | |
download | vyos-build-a7bb0a8021366b5883b947157e9989cf356d9d36.tar.gz vyos-build-a7bb0a8021366b5883b947157e9989cf356d9d36.zip |
Jenkins: T1927: Update Jenkinsfile to build on arm
Diffstat (limited to 'Jenkinsfile')
-rw-r--r-- | Jenkinsfile | 72 |
1 files changed, 60 insertions, 12 deletions
diff --git a/Jenkinsfile b/Jenkinsfile index 40729a58..b726df6e 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -73,18 +73,66 @@ setDescription() // Due to long build times on DockerHub we rather build the container by ourself // and publish it later on. node('Docker') { - stage('Build Container') { - script { - git branch: getGitBranchName(), - url: getGitRepoURL() - - // create container name on demand - env.DOCKER_IMAGE = "vyos/vyos-build:" + getGitBranchName() - sh "docker build -t ${env.DOCKER_IMAGE} docker" - withDockerRegistry([credentialsId: "DockerHub"]) { - sh "docker push ${env.DOCKER_IMAGE}" + stage('Fetch') { + git branch: getGitBranchName(), + url: getGitRepoURL() + } + stage('Build Docker container') { + parallel ( + 'x86-64': { + script { + // create container name on demand + env.DOCKER_IMAGE = "vyos/vyos-build:" + getGitBranchName() + sh "docker build -t ${env.DOCKER_IMAGE} docker" + if ( ! isCustomBuild()) { + withDockerRegistry([credentialsId: "DockerHub"]) { + sh "docker push ${env.DOCKER_IMAGE}" + } + } + } + }, + 'armhf': { + script { + // create container name on demand + env.DOCKER_IMAGE = "vyos/vyos-build:" + getGitBranchName() + "-armhf" + + dir('docker') { + sh """ + cp Dockerfile armhf/Dockerfile + cp entrypoint.sh armhf/entrypoint.sh + sed -i 's#^FROM.*#FROM multiarch/debian-debootstrap:armhf-buster-slim#' armhf/Dockerfile + docker build -t ${env.DOCKER_IMAGE} armhf + """ + if ( ! isCustomBuild()) { + withDockerRegistry([credentialsId: "DockerHub"]) { + sh "docker push ${env.DOCKER_IMAGE}" + } + } + } + } + }, + 'arm64': { + script { + // create container name on demand + env.DOCKER_IMAGE = "vyos/vyos-build:" + getGitBranchName() + "-arm64" + + dir('docker') { + sh """ + cp Dockerfile arm64/Dockerfile + cp entrypoint.sh arm64/entrypoint.sh + sed -i 's#^FROM.*#FROM multiarch/debian-debootstrap:arm64-buster-slim#' arm64/Dockerfile + docker build -t ${env.DOCKER_IMAGE} arm64 + """ + + if ( ! isCustomBuild()) { + withDockerRegistry([credentialsId: "DockerHub"]) { + sh "docker push ${env.DOCKER_IMAGE}" + } + } + } + } } - } + ) } } @@ -92,7 +140,7 @@ pipeline { options { skipDefaultCheckout() disableConcurrentBuilds() - timeout(time: 90, unit: 'MINUTES') + timeout(time: 120, unit: 'MINUTES') parallelsAlwaysFailFast() timestamps() } |