ogbrowser/Jenkinsfile

85 lines
2.5 KiB
Groovy

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"
ssh aptly@${aptly} -o StrictHostKeyChecking=no "aptly publish update -passphrase=\"${GPG_PASSPHRASE}\" noble filesystem:opengnsys:main "
'''
}
}
}
}
}
post {
always {
cleanWs()
}
}
}