From 8353e88262da2050b824cb35c6d361d7b00ac339 Mon Sep 17 00:00:00 2001 From: Czarek Nakamoto Date: Thu, 10 Jul 2025 11:47:35 +0200 Subject: separate builds --- contrib/depends/Jenkinsfile | 88 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 86 insertions(+), 2 deletions(-) diff --git a/contrib/depends/Jenkinsfile b/contrib/depends/Jenkinsfile index db97919..819671f 100644 --- a/contrib/depends/Jenkinsfile +++ b/contrib/depends/Jenkinsfile @@ -4,9 +4,19 @@ pipeline { parameters { string( name: 'LINUX_TARGETS', - defaultValue: 'x86_64-linux-android,armv7a-linux-androideabi,aarch64-linux-android,x86_64-linux-gnu,aarch64-linux-gnu,i686-linux-gnu,x86_64-w64-mingw32,i686-w64-mingw32', + defaultValue: 'x86_64-linux-gnu,aarch64-linux-gnu,i686-linux-gnu', description: 'Comma-separated list of Linux targets to build' ) + string( + name: 'ANDROID_TARGETS', + defaultValue: 'x86_64-linux-android,armv7a-linux-androideabi,aarch64-linux-android', + description: 'Comma-separated list of Android targets to build' + ) + string( + name: 'MINGW_TARGETS', + defaultValue: 'x86_64-w64-mingw32,i686-w64-mingw32', + description: 'Comma-separated list of MinGW targets to build' + ) string( name: 'DARWIN_TARGETS', defaultValue: 'aarch64-apple-darwin,x86_64-apple-darwin,aarch64-apple-ios,aarch64-apple-iossimulator', @@ -32,7 +42,7 @@ pipeline { checkout scm for (target in targets) { - echo "Building dependencies for ${target}" + echo "Building Linux dependencies for ${target}" dir('contrib/depends') { sh "make HOST=${target} DEPENDS_UNTRUSTED_FAST_BUILDS=yes" @@ -53,6 +63,80 @@ pipeline { } } } + + stage('Android Builds') { + agent { + dockerfile { + filename '.devcontainer/Dockerfile' + args '-v /opt/builds:/opt/builds' + label 'linux && amd64' + } + } + steps { + script { + def targets = params.ANDROID_TARGETS.split(',').collect { it.trim() } + + checkout scm + + for (target in targets) { + echo "Building Android dependencies for ${target}" + + dir('contrib/depends') { + sh "make HOST=${target} DEPENDS_UNTRUSTED_FAST_BUILDS=yes" + } + } + } + } + post { + always { + script { + def targets = params.ANDROID_TARGETS.split(',').collect { it.trim() } + for (target in targets) { + archiveArtifacts artifacts: "contrib/depends/built/${target}/*/*.tar.gz*", allowEmptyArchive: true + } + } + + sshPublisher(publishers: [sshPublisherDesc(configName: 'static.mrcyjanek.net', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: 'depends', remoteDirectorySDF: false, sourceFiles: 'contrib/depends/built/*/*/*.tar.gz*')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)]) + } + } + } + + stage('MinGW Builds') { + agent { + dockerfile { + filename '.devcontainer/Dockerfile' + args '-v /opt/builds:/opt/builds' + label 'linux && amd64' + } + } + steps { + script { + def targets = params.MINGW_TARGETS.split(',').collect { it.trim() } + + checkout scm + + for (target in targets) { + echo "Building MinGW dependencies for ${target}" + + dir('contrib/depends') { + sh "make HOST=${target} DEPENDS_UNTRUSTED_FAST_BUILDS=yes" + } + } + } + } + post { + always { + script { + def targets = params.MINGW_TARGETS.split(',').collect { it.trim() } + for (target in targets) { + archiveArtifacts artifacts: "contrib/depends/built/${target}/*/*.tar.gz*", allowEmptyArchive: true + } + } + + sshPublisher(publishers: [sshPublisherDesc(configName: 'static.mrcyjanek.net', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: 'depends', remoteDirectorySDF: false, sourceFiles: 'contrib/depends/built/*/*/*.tar.gz*')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)]) + } + } + } stage('Darwin Builds') { agent { -- cgit v1.2.3