[英]Jenkins C++ build chain
我在一个c ++项目上,我必须设置jenkins slave。 我的项目有3个不同的目录(构建脚本,Mylibrary,MyApplication),每个目录都是一个git存储库。
node {
stage ('Checkout'){
checkout([$class: 'GitSCM',
branches: [[name: '*/devel_dimant']],
doGenerateSubmoduleConfigurations: false,
extensions: [[$class: 'RelativeTargetDirectory',
relativeTargetDir: 'build_scripts']],
submoduleCfg: [],
userRemoteConfigs: [[url: 'file:///home/antonio/Projects/Azalea/rc_octo_cmn_build']]
])
checkout([$class: 'GitSCM',
branches: [[name: '*/devel_dimant']],
doGenerateSubmoduleConfigurations: false,
extensions: [[$class: 'RelativeTargetDirectory',
relativeTargetDir: 'liboctopus']],
submoduleCfg: [],
userRemoteConfigs: [[url: 'file:///home/antonio/Projects/Azalea/rc_octo_cmn_core']]
])
checkout([$class: 'GitSCM',
branches: [[name: '*/devel_dimant']],
doGenerateSubmoduleConfigurations: false,
extensions: [[$class: 'RelativeTargetDirectory',
relativeTargetDir: 'gateway_daemon']],
submoduleCfg: [],
userRemoteConfigs: [[url: 'file:///home/antonio/Projects/Azalea/rc_gtw_octogtwd']]
])
}
stage ('Build liboctopus'){
dir("liboctopus"){
sh ('./../build_scripts/octo_build.sh')
}
dir('liboctopus/release/HOST'){
sh('ls')
}
}
stage ('Build gateway_daemon'){
dir("gateway_daemon"){
sh ('./../build_scripts/octo_build.sh')
}
}
这是我的管道,当我尝试在Build守护程序阶段编译Myapplication时,gcc失败:
构建应用程序'release / HOST / octogtwd',版本=='0.0.1',构建配置=='release'g ++ -o版本/ HOST / octogtwd版本/HOST/configuration_handler.opp版本/HOST/gtw_logger.opp版本/ HOST / main.opp -Wl,-rpath = / opt / OctopusIoT / lib -pthread -rdynamic -Wl,-pie -L ../ liboctopus / release / HOST -lrt -lpthread -lsystemd -loctopus -ljson-c / usr / bin / ld:不可能的trovare -loctopus collect2:错误:ld返回1退出状态make:*** [Makefile:74:release / HOST / octogtwd]错误1
我已经在jenkins目录中创建了到库的符号链接:
liboctopus-0.1.0.a
liboctopus.so
liboctopus.so.0
liboctopus.so.0.1.0
该项目在HOST机器上编译(相对路径工作)。 不是詹金斯。
在这种情况下,您需要将Job分成3个Job(构建脚本,Mylibrary,MyApplication),然后使用copy-artifact插件将工件从一个作业复制到另一个作业。 例:
node {
// setup env..
// copy the deployment unit from another Job...
step ([$class: 'CopyArtifact',
projectName: 'webapp_build',
filter: 'target/orders.war']);
// deploy 'target/orders.war' to an app host
}
我找到了这个链接 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.