我有一个重量级的基础项目很少随时间变化并且有很多头文件。我已将其设置为在具有相对路径base
的自定义工作区中构建。因此,在FS根目录设置为C:\Jenkins
的远程节点上,该特定节点上的结果路径将为C:\Jenkins\base
。
这种设置的原因是我不想为每个依赖项目复制或解压整个基础项目以节省构建时间。另外,我不想使用绝对路径,因为我喜欢自包含jenkins安装的想法。
现在我有第二个使用project
的项目base
。我需要为base
的构建系统指定project
的路径,以便找到所需的base
标头。
有没有办法通过环境检索远程FS root?我尝试使用${env.JENKINS_HOME}
,但这总是解析为Jenkins主人的主文件夹。我的构建系统希望在PATH_TO_BASE环境变量中找到base
项目的路径:
pipeline {
agent none
stages {
stage('Build') {
parallel {
stage('Build Linux x64') {
agent {
label "Debian9_x64"
}
steps {
withEnv(["PATH_TO_BASE=${env.JENKINS_HOME}/base"]) {
sh '''mkdir -p _build
cd _build
cmake ..
cmake --build .'''
}
}
}
stage('Build Windows10') {
agent {
label "Windows10"
}
steps {
withEnv(["PATH_TO_BASE=${env.JENKINS_HOME}/base"]) {
bat '''if not exist _build mkdir _build
cd _build
cmake ..
cmake --build .'''
}
}
}
}
}
}
}
答案 0 :(得分:0)
我通常使用一组环境变量配置slave。