pipeline { agent any options { skipDefaultCheckout(true) } environment { CI_OUTPUT_NAME = "RDI" CI_VERSION = "1.0.0" 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/RDI'], extensions: [], userRemoteConfigs: [[credentialsId: 'jenkins-ssh', url: 'ssh://git@git.jcsmith.fr:2322/JCS-Prod/RDI.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/RDI'], extensions: [], userRemoteConfigs: [[credentialsId: 'jenkins-ssh', url: 'ssh://git@git.jcsmith.fr:2322/JCS-Prod/RDI.git']]]) sh 'git submodule update --init --recursive' dir("build") { rtConanRun(clientId: "conan", command: "install .. -pr:b=default -pr:h=windows --build=missing") } cmakeBuild buildDir: 'build', cmakeArgs: '-DGNU_HOST=x86_64-w64-mingw32 -DCMAKE_TOOLCHAIN_FILE=./cmake/mingw_cross_toolchain.cmake', installation: 'latest', steps: [[args: 'all']] } } ) } } stage('Deploy') { steps { dir("zip_linux") { sh 'cp -R ../linux/build/bin ../linux/build/lib ../linux/include .' } dir("zip_win") { sh 'cp -R ../windows/build/bin ../windows/build/lib ../windows/include .' } zip archive: false, dir: 'zip_linux', exclude: '', glob: '', zipFile: 'linux_x64.zip' sh 'mv linux_x64.zip ${CI_OUTPUT_NAME}_${CI_VERSION}.${BUILD_NUMBER}_Linux_x86_64.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 'gpg --batch --detach-sign -o ${CI_OUTPUT_NAME}_${CI_VERSION}.${BUILD_NUMBER}_Linux_x86_64.zip.gpg ${CI_OUTPUT_NAME}_${CI_VERSION}.${BUILD_NUMBER}_Linux_x86_64.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) } } */ }