diff options
author | Runar Borge <runar@borge.nu> | 2020-01-01 10:59:40 +0100 |
---|---|---|
committer | Runar Borge <runar@borge.nu> | 2020-01-03 22:18:42 +0100 |
commit | 01ae02e0bcdcf15e25bc7c2ef6a9c6c8360485d1 (patch) | |
tree | 06d07c4178bafae9f305d60d7420a68a52428fe4 /Jenkinsfile | |
parent | de4805055f2cec53af0e80e9d742bc13d9e2bc4d (diff) | |
download | vyos-build-01ae02e0bcdcf15e25bc7c2ef6a9c6c8360485d1.tar.gz vyos-build-01ae02e0bcdcf15e25bc7c2ef6a9c6c8360485d1.zip |
Jenkins: T1927: Update Jenkinsfile to build on arm
Diffstat (limited to 'Jenkinsfile')
-rw-r--r-- | Jenkinsfile | 81 |
1 files changed, 69 insertions, 12 deletions
diff --git a/Jenkinsfile b/Jenkinsfile index 40729a58..326c03e8 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -72,19 +72,76 @@ setDescription() // Due to long build times on DockerHub we rather build the container by ourself // and publish it later on. + +// create container names on demand +env.DOCKER_IMAGE = "vyos/vyos-build:" + getGitBranchName() +env.DOCKER_IMAGE_ARM = "vyos/vyos-build:" + getGitBranchName() + "-armhf" +env.DOCKER_IMAGE_ARM64 = "vyos/vyos-build:" + getGitBranchName() + "-arm64" + 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 { + dir('docker') { + sh """ + mkdir -p x86-64 + cp Dockerfile x86-64/Dockerfile + cp entrypoint.sh x86-64/entrypoint.sh + + docker build -t ${env.DOCKER_IMAGE} x86-64 + """ + if ( ! isCustomBuild()) { + withDockerRegistry([credentialsId: "DockerHub"]) { + sh "docker push ${env.DOCKER_IMAGE}" + } + + } + } + } + }, + 'armhf': { + script { + 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_ARM} armhf + """ + if ( ! isCustomBuild()) { + withDockerRegistry([credentialsId: "DockerHub"]) { + sh "docker push ${env.DOCKER_IMAGE_ARM}" + } + } + } + } + }, + 'arm64': { + script { + 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} arm64 + + """ + + if ( ! isCustomBuild()) { + withDockerRegistry([credentialsId: "DockerHub"]) { + sh "docker push ${env.DOCKER_IMAGE_ARM64}" + + } + } + } + } } - } + ) } } @@ -92,7 +149,7 @@ pipeline { options { skipDefaultCheckout() disableConcurrentBuilds() - timeout(time: 90, unit: 'MINUTES') + timeout(time: 120, unit: 'MINUTES') parallelsAlwaysFailFast() timestamps() } |