我正在探索Jenkins 2.0管道。到目前为止,我的文件很简单。
node {
stage "checkout"
git([url:"https://github.com/luxengine/math.git"])
stage "build"
echo "Building from pipeline"
}
我似乎无法找到任何方法来设置git将结帐的目录。我也找不到与此相关的任何文件。我发现https://jenkinsci.github.io/job-dsl-plugin/但它似乎与我在其他教程中看到的不匹配。
答案 0 :(得分:18)
看起来您正在尝试配置Pipeline作业(以前称为“工作流程”)。这类工作与Job DSL非常不同。
管道工作的目的是:
协调可以跨越多个构建从属的长时间运行的活动。适用于构建管道(以前称为工作流程)和/或组织不易适应自由式工作类型的复杂活动。
作为工作DSL的地方:
...允许使用DSL以编程方式创建项目。将作业创建推送到脚本中可以让您自动化和标准化Jenkins安装,这与以前不同。
如果要将代码签出到特定目录,请将git
步骤替换为更常规的SCM checkout
步骤。
最终Pipeline配置应如下所示:
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"
}
作为Jenkins 2.0和Pipeline DSL的未来参考,请使用内置的代码段生成器或documentation。
答案 1 :(得分:10)
这可以通过使用dir:
的指令来完成.class-name {
background-image: url("images/file.jpg")
}
答案 2 :(得分:1)
首先要明确您使用的是Jenkins Job DSL。
你可以这样做:
scm {
git {
wipeOutWorkspace(true)
shallowClone(true);
remote {
url("xxxx....")
relativeTargetDir('checkout-folder')
}
}
}
上面这个地址让你有机会输入左上角的例子'scm'而不是它会显示哪些关系'scm'可以使用。你可以选择'scm-freestylejob'然后点击'***',你可以看到详细信息。
Jenkins Job DSL的一般起点是:
您当然可以在SO或Google论坛上询问:
答案 3 :(得分:0)
您使用的是Pipeline Plugin,而不是Job DSL Plugin。在Pipeline Plugin中,如果要定义某些内容,而Pipeline语法中还没有可用的函数,则可以define it yourself。
答案 4 :(得分:0)
pipeline {
agent any
stages{
stage("Checkout") {
steps {
dir('def exists = fileNotExists \'git\'') {
bat label: '', script: 'sh "mkdir.sh'
}
dir ('cm') {
git branch: 'dev',
credentialsId: '<your credential id>',
url: '<yours git url>'
}
}
} //End of Checkout stage
stage("TestShellScript") {
steps {
bat label: '', script: 'sh "PrintNumber.sh"'
}
}
}//End of stages
} // End of pipeline
Note: cat mkdir.sh
#!/bin/bash
#Create a directory
mkdir git