Build with Jenkins

jenkins
Vadim vtroshchinskiy 2025-02-21 13:07:33 +01:00
parent c0045cf45d
commit 1b1be7c87c
4 changed files with 81 additions and 7 deletions

View File

@ -4,5 +4,6 @@ ENV DEBIAN_PRIORITY=critical
RUN apt update
RUN apt dist-upgrade -y
RUN apt 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
RUN apt install -y openssh-client 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

58
Jenkinsfile vendored
View File

@ -1,29 +1,79 @@
pipeline {
agent {
docker {
image 'ubuntu:24.04'
image 'ogbrowser-build:latest'
args '-u root:root'
label 'jenkins-slave'
}
}
stages {
stage('Install Dependencies') {
stage('Prepare environment') {
steps {
sh '''
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
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 .. -G Ninja
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 {

View File

@ -53,7 +53,10 @@ else()
find_package(Qt5LinguistTools "${QT_MINIMUM_VERSION}" REQUIRED)
endif()
find_package(lxqt2-build-tools ${LXQTBT_MINIMUM_VERSION} REQUIRED)
find_package(lxqt-build-tools ${LXQTBT_MINIMUM_VERSION} QUIET)
if (NOT lxqt-build-tools_FOUND)
find_package(lxqt2-build-tools ${LXQTBT_MINIMUM_VERSION} REQUIRED)
endif()
if(USE_UTF8PROC)
find_package(Utf8Proc REQUIRED)

View File

@ -8,6 +8,24 @@ set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
if (NOT DEFINED CPACK_PACKAGE_VERSION_MAJOR)
set(CPACK_PACKAGE_VERSION_MAJOR "2")
endif()
if (NOT DEFINED CPACK_PACKAGE_VERSION_MINOR)
set(CPACK_PACKAGE_VERSION_MINOR "0")
endif()
if (NOT DEFINED CPACK_PACKAGE_VERSION_PATCH)
set(CPACK_PACKAGE_VERSION_PATCH "0")
endif()
set(KB_LAYOUT_DIR "/usr/lib/qtermwidget/kb" CACHE INTERNAL "")
@ -16,6 +34,7 @@ find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Widgets LinguistTools Network WebE
message(STATUS "Building browser with Qt ${QT_VERSION}")
message(STATUS "Browser version is ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
set(SOURCES
main.cpp
@ -56,7 +75,8 @@ set(CPACK_PACKAGE_NAME "OGBrowser")
set(CPACK_PACKAGE_VENDOR "OpenGnsys")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "OpenGnsys Browser")
set(CMAKE_PROJECT_HOMEPAGE_URL "https://opengnsys.es/web/")
set(CPACK_PACKAGE_VERSION "2.0")
set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
set(CPACK_SET_DESTDIR true)
set(CPACK_PACKAGING_INSTALL_PREFIX "/usr")