mirror of
https://github.com/status-im/status-desktop.git
synced 2025-01-10 22:36:24 +00:00
Jakub Sokołowski
349c83347d
This depends on installing Qt via Brew, but that creates a version mismatch, since it's 5.15.8 and not 5.15.2, which is not optimal but works for now. In the long term we should probably look into using Nix, or maybe aqt will support M1 Macs, but this is not great. Depends on: - https://github.com/status-im/infra-ci/commit/54408b41 - https://github.com/status-im/infra-ci/commit/39d4fdef Resolves: https://github.com/status-im/status-desktop/issues/9984 Signed-off-by: Jakub Sokołowski <jakub@status.im>
84 lines
2.1 KiB
Plaintext
84 lines
2.1 KiB
Plaintext
library 'status-jenkins-lib@v1.6.8'
|
|
|
|
/* Options section can't access functions in objects. */
|
|
def isPRBuild = utils.isPRBuild()
|
|
|
|
pipeline {
|
|
agent {
|
|
docker {
|
|
label 'linux'
|
|
image 'stateoftheartio/qt6:6.3-mingw-aqt'
|
|
}
|
|
}
|
|
|
|
parameters {
|
|
booleanParam(
|
|
name: 'RELEASE',
|
|
description: 'Decides whether binaries are built with debug symbols.',
|
|
defaultValue: params.RELEASE ?: false
|
|
)
|
|
}
|
|
|
|
options {
|
|
timestamps()
|
|
/* Prevent Jenkins jobs from running forever */
|
|
timeout(time: 20, unit: 'MINUTES')
|
|
/* manage how many builds we keep */
|
|
buildDiscarder(logRotator(
|
|
numToKeepStr: '10',
|
|
daysToKeepStr: '30',
|
|
artifactNumToKeepStr: '3',
|
|
))
|
|
/* Abort old PR builds. */
|
|
disableConcurrentBuilds(
|
|
abortPrevious: isPRBuild
|
|
)
|
|
}
|
|
|
|
environment {
|
|
TARGET = 'windows-cpp'
|
|
/* Control output the filename */
|
|
STATUS_CLIENT_ZIP = "pkg/${utils.pkgFilename(ext: 'zip')}"
|
|
}
|
|
|
|
// TODO: Move all stages to the Makefile as targets "*-windows-using-docker"
|
|
stages {
|
|
stage('CMake Build') {
|
|
steps {
|
|
sh "qt-cmake ${env.WORKSPACE} -G Ninja -B ${env.WORKSPACE}/build -DCMAKE_BUILD_TYPE=Release"
|
|
sh "cmake --build ${env.WORKSPACE}/build"
|
|
}
|
|
}
|
|
|
|
stage('Package') {
|
|
steps {
|
|
sh "windeployqt --qmldir ${env.WORKSPACE} --dir ${env.WORKSPACE}/build/deploy --libdir ${env.WORKSPACE}/build/deploy/libs --plugindir ${env.WORKSPACE}/build/deploy/plugins ${env.WORKSPACE}/build/*.exe"
|
|
sh "zip -r ${STATUS_CLIENT_ZIP} build/deploy/"
|
|
}
|
|
}
|
|
|
|
stage('Parallel Upload') {
|
|
parallel {
|
|
stage('Upload') {
|
|
steps { script {
|
|
exe_url = s3.uploadArtifact(env.STATUS_CLIENT_ZIP)
|
|
env.PKG_URL = exe_url
|
|
jenkins.setBuildDesc(Zip: zip_url, Exe: exe_url)
|
|
} }
|
|
}
|
|
stage('Archive') {
|
|
steps { script {
|
|
archiveArtifacts(env.STATUS_CLIENT_ZIP)
|
|
} }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
post {
|
|
success { script { github.notifyPR(true) } }
|
|
failure { script { github.notifyPR(false) } }
|
|
cleanup { sh './scripts/clean-git.sh' }
|
|
}
|
|
}
|