summaryrefslogtreecommitdiff
path: root/Jenkinsfile
diff options
context:
space:
mode:
authorRunar Borge <runar@borge.nu>2020-01-01 10:59:40 +0100
committerRunar Borge <runar@borge.nu>2020-01-03 18:55:58 +0100
commita7bb0a8021366b5883b947157e9989cf356d9d36 (patch)
treec0d2dd2696f749f5b3eea1a998223fe6e10888e0 /Jenkinsfile
parentde4805055f2cec53af0e80e9d742bc13d9e2bc4d (diff)
downloadvyos-build-a7bb0a8021366b5883b947157e9989cf356d9d36.tar.gz
vyos-build-a7bb0a8021366b5883b947157e9989cf356d9d36.zip
Jenkins: T1927: Update Jenkinsfile to build on arm
Diffstat (limited to 'Jenkinsfile')
-rw-r--r--Jenkinsfile72
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()
}