summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Chavez <david@dcvz.io>2022-06-18 15:43:16 +0200
committerGitHub <noreply@github.com>2022-06-18 09:43:16 -0400
commit1763d0bfcef5b01a239f58a5aa49f650e65568d5 (patch)
tree1498803323a5ba7a6c0e357536f6d786070428aa
parent8d4b15325a5d60dddc9f3e96a215e731a1871940 (diff)
Enable parallel stages on Jenkins (#476)
-rw-r--r--Jenkinsfile218
1 files changed, 111 insertions, 107 deletions
diff --git a/Jenkinsfile b/Jenkinsfile
index aacbc8f1a..dc125128f 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -7,115 +7,119 @@ pipeline {
}
stages {
- stage ('Build Windows') {
- options {
- timeout(time: 20)
- }
- environment {
- MSBUILD='C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Msbuild\\Current\\Bin\\msbuild.exe'
- CONFIG='Release'
- OTRPLATFORM='x64'
- PLATFORM='x86'
- ZIP='C:\\Program Files\\7-Zip\\7z.exe'
- PYTHON='C:\\Users\\jenkins\\AppData\\Local\\Programs\\Python\\Python310\\python.exe'
- CMAKE='C:\\Program Files\\CMake\\bin\\cmake.exe'
- TOOLSET='v142'
- }
- agent {
- label "SoH-Builders"
- }
- steps {
- checkout([
- $class: 'GitSCM',
- branches: scm.branches,
- doGenerateSubmoduleConfigurations: scm.doGenerateSubmoduleConfigurations,
- extensions: scm.extensions,
- userRemoteConfigs: scm.userRemoteConfigs
- ])
-
- catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
- bat """
-
- "${env.MSBUILD}" ".\\OTRExporter\\OTRExporter.sln" -t:build -p:Configuration=${env.CONFIG};Platform=${env.OTRPLATFORM};PlatformToolset=${env.TOOLSET};RestorePackagesConfig=true /restore /nodeReuse:false /m
-
- xcopy "..\\..\\ZELOOTD.z64" "OTRExporter\\"
-
- cd "OTRExporter"
- "${env.PYTHON}" ".\\extract_assets.py"
- cd "..\\"
-
- "${env.MSBUILD}" ".\\soh\\soh.sln" -t:build -p:Configuration=${env.CONFIG};Platform=${env.PLATFORM};PlatformToolset=${env.TOOLSET} /nodeReuse:false /m
-
- cd OTRGui
- mkdir build
- cd build
-
- "${env.CMAKE}" ..
- "${env.CMAKE}" --build . --config Release
-
- cd "..\\..\\"
-
- move "soh\\Release\\soh.exe" ".\\"
- move "OTRGui\\build\\assets" ".\\"
- move ".\\OTRExporter\\x64\\Release\\ZAPD.exe" ".\\assets\\extractor\\"
- move ".\\OTRGui\\build\\Release\\OTRGui.exe" ".\\"
- rename README.md readme.txt
-
- "${env.ZIP}" a soh.7z soh.exe OTRGui.exe assets readme.txt
-
- """
- archiveArtifacts artifacts: 'soh.7z', followSymlinks: false, onlyIfSuccessful: true
+ stage('Build SoH') {
+ parallel {
+ stage ('Build Windows') {
+ options {
+ timeout(time: 20)
+ }
+ environment {
+ MSBUILD='C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Msbuild\\Current\\Bin\\msbuild.exe'
+ CONFIG='Release'
+ OTRPLATFORM='x64'
+ PLATFORM='x86'
+ ZIP='C:\\Program Files\\7-Zip\\7z.exe'
+ PYTHON='C:\\Users\\jenkins\\AppData\\Local\\Programs\\Python\\Python310\\python.exe'
+ CMAKE='C:\\Program Files\\CMake\\bin\\cmake.exe'
+ TOOLSET='v142'
+ }
+ agent {
+ label "SoH-Builders"
+ }
+ steps {
+ checkout([
+ $class: 'GitSCM',
+ branches: scm.branches,
+ doGenerateSubmoduleConfigurations: scm.doGenerateSubmoduleConfigurations,
+ extensions: scm.extensions,
+ userRemoteConfigs: scm.userRemoteConfigs
+ ])
+
+ catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
+ bat """
+
+ "${env.MSBUILD}" ".\\OTRExporter\\OTRExporter.sln" -t:build -p:Configuration=${env.CONFIG};Platform=${env.OTRPLATFORM};PlatformToolset=${env.TOOLSET};RestorePackagesConfig=true /restore /nodeReuse:false /m
+
+ xcopy "..\\..\\ZELOOTD.z64" "OTRExporter\\"
+
+ cd "OTRExporter"
+ "${env.PYTHON}" ".\\extract_assets.py"
+ cd "..\\"
+
+ "${env.MSBUILD}" ".\\soh\\soh.sln" -t:build -p:Configuration=${env.CONFIG};Platform=${env.PLATFORM};PlatformToolset=${env.TOOLSET} /nodeReuse:false /m
+
+ cd OTRGui
+ mkdir build
+ cd build
+
+ "${env.CMAKE}" ..
+ "${env.CMAKE}" --build . --config Release
+
+ cd "..\\..\\"
+
+ move "soh\\Release\\soh.exe" ".\\"
+ move "OTRGui\\build\\assets" ".\\"
+ move ".\\OTRExporter\\x64\\Release\\ZAPD.exe" ".\\assets\\extractor\\"
+ move ".\\OTRGui\\build\\Release\\OTRGui.exe" ".\\"
+ rename README.md readme.txt
+
+ "${env.ZIP}" a soh.7z soh.exe OTRGui.exe assets readme.txt
+
+ """
+ archiveArtifacts artifacts: 'soh.7z', followSymlinks: false, onlyIfSuccessful: true
+ }
+ }
+ post {
+ always {
+ step([$class: 'WsCleanup']) // Clean workspace
+ }
+ }
}
- }
- post {
- always {
- step([$class: 'WsCleanup']) // Clean workspace
- }
- }
- }
- stage ('Build Linux') {
- options {
- timeout(time: 20)
- }
- agent {
- label "SoH-Linux-Builders"
- }
- steps {
- checkout([
- $class: 'GitSCM',
- branches: scm.branches,
- doGenerateSubmoduleConfigurations: scm.doGenerateSubmoduleConfigurations,
- extensions: scm.extensions,
- userRemoteConfigs: scm.userRemoteConfigs
- ])
- catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
- sh '''
-
- cp ../../ZELOOTD.z64 OTRExporter/baserom_non_mq.z64
- docker build . -t soh
- docker run --name sohcont -dit --rm -v $(pwd):/soh soh /bin/bash
- cp ../../buildsoh.bash soh
- docker exec sohcont soh/buildsoh.bash
-
- mkdir build
- mv soh/soh.elf build/
- mv OTRGui/build/OTRGui build/
- mv OTRGui/build/assets build/
- mv ZAPDTR/ZAPD.out build/assets/extractor/
- mv README.md build/readme.txt
- cd build
+ stage ('Build Linux') {
+ options {
+ timeout(time: 20)
+ }
+ agent {
+ label "SoH-Linux-Builders"
+ }
+ steps {
+ checkout([
+ $class: 'GitSCM',
+ branches: scm.branches,
+ doGenerateSubmoduleConfigurations: scm.doGenerateSubmoduleConfigurations,
+ extensions: scm.extensions,
+ userRemoteConfigs: scm.userRemoteConfigs
+ ])
+ catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
+ sh '''
+
+ cp ../../ZELOOTD.z64 OTRExporter/baserom_non_mq.z64
+ docker build . -t soh
+ docker run --name sohcont -dit --rm -v $(pwd):/soh soh /bin/bash
+ cp ../../buildsoh.bash soh
+ docker exec sohcont soh/buildsoh.bash
+
+ mkdir build
+ mv soh/soh.elf build/
+ mv OTRGui/build/OTRGui build/
+ mv OTRGui/build/assets build/
+ mv ZAPDTR/ZAPD.out build/assets/extractor/
+ mv README.md build/readme.txt
+ cd build
- 7z a soh-linux.7z soh.elf OTRGui assets readme.txt
- mv soh-linux.7z ../
-
- '''
- }
- sh 'sudo docker container stop sohcont'
- archiveArtifacts artifacts: 'soh-linux.7z', followSymlinks: false, onlyIfSuccessful: true
- }
- post {
- always {
- step([$class: 'WsCleanup']) // Clean workspace
+ 7z a soh-linux.7z soh.elf OTRGui assets readme.txt
+ mv soh-linux.7z ../
+
+ '''
+ }
+ sh 'sudo docker container stop sohcont'
+ archiveArtifacts artifacts: 'soh-linux.7z', followSymlinks: false, onlyIfSuccessful: true
+ }
+ post {
+ always {
+ step([$class: 'WsCleanup']) // Clean workspace
+ }
+ }
}
}
}