我正在探索Jenkins 2.0管道.到目前为止,我的文件非常简单.
node {
stage "checkout"
git([url:"https://github.com/luxengine/math.git"])
stage "build"
echo "Building from pipeline"
}
Run Code Online (Sandbox Code Playgroud)
我似乎找不到任何方法来设置git将checkout的目录.我也找不到与此相关的任何文件.我找到了https://jenkinsci.github.io/job-dsl-plugin/但它似乎与我在其他教程上看到的不一致.
luk*_*a5z 24
看起来您正在尝试配置管道作业(以前称为工作流程).这种类型的工作与Job DSL截然不同.
Pipeline工作的目的是:
协调可以跨越多个构建从属的长时间运行的活动.适用于构建管道(以前称为工作流程)和/或组织不易适应自由式工作类型的复杂活动.
作为工作DSL的地方:
...允许使用DSL以编程方式创建项目.将作业创建推送到脚本中可以让您自动化和标准化Jenkins安装,这与以前不同.
如果要将代码签出到特定目录,请将git步骤替换为更常规的SCM checkout步骤.最终管道配置应如下所示:
node {
stage "checkout"
//git([url:"https://github.com/luxengine/math.git"])
checkout([$class: 'GitSCM',
branches: [[name: '*/master']],
doGenerateSubmoduleConfigurations: false,
extensions: [[$class: 'RelativeTargetDirectory',
relativeTargetDir: 'checkout-directory']],
submoduleCfg: [],
userRemoteConfigs: [[url: 'https://github.com/luxengine/math.git']]])
stage "build"
echo "Building from pipeline"
}
Run Code Online (Sandbox Code Playgroud)
作为Jenkins 2.0和Pipeline DSL 的未来参考,请使用内置的Snippet Generator或文档.
Cro*_*oss 14
这可以通过使用dir的指令来完成:
def exists = fileExists '<your target dir>'
if (!exists){
new File('<your target dir>').mkdir()
}
dir ('<your target dir>') {
git url: '<your git repo address>'
}
Run Code Online (Sandbox Code Playgroud)
首先明确您正在使用 Jenkins Job DSL。
你可以这样做:
scm {
git {
wipeOutWorkspace(true)
shallowClone(true);
remote {
url("xxxx....")
relativeTargetDir('checkout-folder')
}
}
}
Run Code Online (Sandbox Code Playgroud)
上述地址使您有机会简单地输入左上角区域,例如“scm”,然后它将显示可以使用哪些关系“scm”。您可以选择“scm-freestylejob”,然后单击“***”,您可以看到详细信息。
Jenkins Job DSL 的一般起点在这里:
您当然可以在 SO 或 Google 论坛上提问:
| 归档时间: |
|
| 查看次数: |
24389 次 |
| 最近记录: |