summaryrefslogtreecommitdiff
path: root/Jenkinsfile
diff options
context:
space:
mode:
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()
}