pipeline { agent { docker { image 'ogbrowser-build:latest' args '-u root:root' label 'jenkins-slave' } } stages { stage('Prepare environment') { steps { sh ''' apt-get update apt-get install -y openssh-client ''' } } stage('Install Dependencies') { steps { sshagent (credentials: ['aptly-key']) { sh ''' pwd uname -a df env export DEBIAN_FRONTEND=noninteractive apt-get update apt-get install -y build-essential cmake g++ qt6-base-dev qt6-webengine-dev linguist-qt6 libgl1-mesa-dev qt6-tools-dev qt6-l10n-tools qt6-tools-dev-tools libqt6core5compat6-dev lxqt-build-tools qt6-webengine-dev-tools libqt6webenginecore6-bin ninja-build echo "Test" aptly=172.17.8.68 ssh aptly@${aptly} -o StrictHostKeyChecking=no "uptime" ''' } } } stage('Build') { steps { sh ''' mkdir -p build cd build cmake .. -DCPACK_PACKAGE_VERSION_PATCH=${BUILD_NUMBER} -G Ninja ninja ''' } } stage('Create package') { steps { sh ''' cd build cpack -G DEB ''' } } stage("Upload package to Aptly") { steps { sshagent (credentials : ['aptly-key']) { withCredentials([string(credentialsId: 'aptly-gpg-passphrase', variable: 'GPG_PASSPHRASE')]) { sh ''' aptly=172.17.8.68 scp -o StrictHostKeyChecking=no build/OGBrowser-2.0.${BUILD_NUMBER}-Linux.deb aptly@${aptly}:/tmp ssh aptly@${aptly} -o StrictHostKeyChecking=no "aptly repo add opengnsys /tmp/OGBrowser-2.0.${BUILD_NUMBER}-Linux.deb" ''' } } } } } post { always { cleanWs() } } }