pipeline { agent any options { skipDefaultCheckout(true) } environment { CI_OUTPUT_NAME = "RSE_Map" CI_VERSION = "1.0.1" CI_BUILD_NUMBER = "$BUILD_NUMBER" } stages { stage('Prepare') { steps { cleanWs() rtConanClient(id: "conan", userHome: "/home/jackcartersmith") } } stage('Build') { steps { parallel( linux: { dir("linux") { checkout([$class: 'GitSCM', branches: [[name: '**']], browser: [$class: 'GiteaBrowser', repoUrl: 'https://git.jcsmith.fr/JCS-Prod/RSE-Map'], extensions: [], userRemoteConfigs: [[credentialsId: 'jenkins-ssh', url: 'ssh://git@git.jcsmith.fr:2322/JCS-Prod/RSE-Map.git']]]) sh 'git submodule update --init --recursive' dir("build") { rtConanRun(clientId: "conan", command: "install .. --build missing") } cmakeBuild buildDir: 'build', installation: 'latest', steps: [[args: 'all']] } }, windows: { dir("windows") { checkout([$class: 'GitSCM', branches: [[name: '**']], browser: [$class: 'GiteaBrowser', repoUrl: 'https://git.jcsmith.fr/JCS-Prod/RSE-Map'], extensions: [], userRemoteConfigs: [[credentialsId: 'jenkins-ssh', url: 'ssh://git@git.jcsmith.fr:2322/JCS-Prod/RSE-Map.git']]]) sh 'git submodule update --init --recursive' dir("build") { rtConanRun(clientId: "conan", command: "install .. --profile windows --build missing") } cmakeBuild buildDir: 'build', cmakeArgs: '-DGNU_HOST=x86_64-w64-mingw32 -DCMAKE_TOOLCHAIN_FILE=../mingw_cross_toolchain.cmake', installation: 'latest', steps: [[args: 'all']] } } ) } } stage('Deploy') { steps { dir("zip_linux") { sh 'cp ../linux/build/${CI_OUTPUT_NAME}-${CI_VERSION}.${BUILD_NUMBER}* .' } dir("zip_win") { sh 'cp ../windows/build/${CI_OUTPUT_NAME}-${CI_VERSION}.${BUILD_NUMBER}* ../windows/build/*.dll .' } zip archive: false, dir: 'zip_linux', exclude: '', glob: '', zipFile: 'x64.zip' sh 'mv x64.zip ${CI_OUTPUT_NAME}-${CI_VERSION}.${BUILD_NUMBER}_x64.zip' zip archive: false, dir: 'zip_win', exclude: '', glob: '', zipFile: 'mingw64.zip' sh 'mv mingw64.zip ${CI_OUTPUT_NAME}-${CI_VERSION}.${BUILD_NUMBER}_mingw64.zip' archiveArtifacts(artifacts: '*.zip') fingerprint(targets: '*.zip') } } stage('Sign') { steps { sh 'ls -l' sh 'gpg --batch --detach-sign -o ${CI_OUTPUT_NAME}-${CI_VERSION}.${BUILD_NUMBER}_x64.zip.gpg ${CI_OUTPUT_NAME}-${CI_VERSION}.${BUILD_NUMBER}_x64.zip' sh 'gpg --batch --detach-sign -o ${CI_OUTPUT_NAME}-${CI_VERSION}.${BUILD_NUMBER}_mingw64.zip.gpg ${CI_OUTPUT_NAME}-${CI_VERSION}.${BUILD_NUMBER}_mingw64.zip' archiveArtifacts(artifacts: '*.gpg') fingerprint(targets: '*.gpg') } } } /* post { always { cleanWs(cleanWhenNotBuilt: false, deleteDirs: true, disableDeferredWipeout: true, notFailBuild: true) } } */ }