/* These defaults are used when the parameters are empty You can override parameters with "build with parameters" and the changes should remain for later builds */ def default_UPLOAD_USER = "james_paige" def default_UPLOAD_HOST = "motherhamster.org" def default_UPLOAD_FOLDER = "HamsterRepublic.com/ohrrpgce/nightly-test/" def default_SSH_CREDS = "hamsterrepublic-ohrrpgce" pipeline { agent any triggers { pollSCM 'H/5 * * * *' } options { quietPeriod(60) } parameters { string( name: "UPLOAD_USER", defaultValue: params.UPLOAD_USER ?: default_UPLOAD_USER, description: "This username will be used when doing the ssh upload of build artifacts" ) string( name: "UPLOAD_HOST", defaultValue: params.UPLOAD_HOST ?: default_UPLOAD_HOST, description: "This hostname will be the destination for doing the ssh upload of build artifacts" ) string( name: "UPLOAD_FOLDER", defaultValue: params.UPLOAD_FOLDER ?: default_UPLOAD_FOLDER, description: "This is the destination folder on the remote host for doing the ssh upload of build artifacts" ) string( name: "SSH_CREDS", defaultValue: params.SSH_CREDS ?: default_SSH_CREDS, description: "This is the ID you used when you added your ssh private key to Jenkins' credential vault. The matching public key must be in .ssh/authorized_keys for the upload host" ) } stages { stage('docker-images') { steps { sh 'docker build --tag bobthehamster/freebasic ./docker/freebasic/' sh 'docker build --tag bobthehamster/ohrrpgce-build-env ./docker/ohrrpgce-build-env/' sh 'docker build --tag bobthehamster/ohrrpgce-build-env-x86 ./docker/ohrrpgce-build-env-x86/' } } stage('cleanup-distrib') { steps { sh 'rm -f distrib/*' } } stage('build-linux-x86_64') { agent { docker { image 'bobthehamster/ohrrpgce-build-env' } } environment { OHR_SKIP_X86 = "yes" } steps { sh './distrib-linux.sh' sh 'ls -l distrib/' stash name: 'distrib_dir_linux_x86_64', includes: 'distrib/*' } } stage('build-linux-x86') { agent { docker { image 'bobthehamster/ohrrpgce-build-env-x86' } } environment { OHR_SKIP_X86_64 = "yes" } steps { sh './distrib-linux.sh' sh 'ls -l distrib/' stash name: 'distrib_dir_linux_x86', includes: 'distrib/*' } } stage('upload-ohrrpgce') { environment { USER = "${params.UPLOAD_USER}" HOST = "${params.UPLOAD_HOST}" FOLDER = "${params.UPLOAD_FOLDER}" } steps { unstash 'distrib_dir_linux_x86_64' unstash 'distrib_dir_linux_x86' sh 'ls -l distrib/' withCredentials([sshUserPrivateKey(credentialsId: params.SSH_CREDS, keyFileVariable: 'SSH_KEYFILE')]) { sh ''' scp -i $SSH_KEYFILE -o StrictHostKeyChecking=no \ distrib/ohrrpgce-linux-*-wip-x86_64.tar.bz2 \ $USER@$HOST:$FOLDER/ohrrpgce-linux-$BRANCH_NAME-x86_64.tar.bz2 scp -i $SSH_KEYFILE -o StrictHostKeyChecking=no \ distrib/ohrrpgce-player-linux-*-wip-x86_64.zip \ $USER@$HOST:$FOLDER/ohrrpgce-player-linux-$BRANCH_NAME-x86_64.zip scp -i $SSH_KEYFILE -o StrictHostKeyChecking=no \ distrib/ohrrpgce-linux-*-wip-x86.tar.bz2 \ $USER@$HOST:$FOLDER/ohrrpgce-linux-$BRANCH_NAME-x86.tar.bz2 scp -i $SSH_KEYFILE -o StrictHostKeyChecking=no \ distrib/ohrrpgce-player-linux-*-wip-x86.zip \ $USER@$HOST:$FOLDER/ohrrpgce-player-linux-$BRANCH_NAME-x86.zip ''' } } } } }