diff options
| author | Czarek Nakamoto <cyjan@mrcyjanek.net> | 2025-07-10 11:47:35 +0200 |
|---|---|---|
| committer | Czarek Nakamoto <cyjan@mrcyjanek.net> | 2025-07-10 11:47:35 +0200 |
| commit | 8353e88262da2050b824cb35c6d361d7b00ac339 (patch) | |
| tree | 84159796d543306ec8cef6aef170278d0bad5feb | |
| parent | 70ff7ac8a296db24401ca85557f94a5dfb9ab42b (diff) | |
separate builds
| -rw-r--r-- | contrib/depends/Jenkinsfile | 88 |
1 files 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,10 +4,20 @@ 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', description: 'Comma-separated list of Darwin targets to build' @@ -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 { |
