Jenkins Pipeline Checkout SVN 到自定义工作区
Jenkins Pipeline Checkout SVN to custom workspace
我现在正在编写 Jenkins 管道脚本(声明式)。基本上是这样的:
pipeline {
agent any
environment {
NLS_LANG = 'GERMAN_GERMANY.AL32UTF8'
}
stages {
stage('Test') {
steps {
script {
echo "Test"
}
}
}
}
}
脚本本身工作正常。但是我们现在发现,jenkins 首先检查我们的 SVN 存储库以找到 Jenkinsfile(在 job Folder
> C:\jenkins_home\jobs\<Projectname>\jobs\<Jobname>
中的文件夹 workspace@script
中检查)。
然后整个 SVN 在我没有写在 Jenkinsfile 中的第二步中再次检出(标题:“Declarative: SCM Checkout
”)。
如果我们可以更改此签出的路径,那就没问题了,因为目前它会在 job folder
中新创建的 workspace
文件夹中签出。
这里是管道作业控制台输出的屏幕截图:
如何实现自定义工作区的签出?
最好它只会在第一次签出时单独签出 Jenkinsfile,而不是整个存储库。
我试图将 repository url
更改为保存 Jenkinsfile 的文件夹(单独),但是管道也(仅)在第二次结帐时检查此文件夹。
这里是控制台输出的屏幕截图:
在解决这个问题时可能与谁有关:使用 ws('/path/to/dir') 分配不同的目录(参见 Pipeline: Nodes and processes)
pipeline {
agent any
environment {
NLS_LANG = 'GERMAN_GERMANY.AL32UTF8'
}
stages {
stage('Test') {
steps {
script {
echo "Test"
ws('/path/to/dir'){
//dosomething here, like "checkout scm"
}
}
}
}
}
我现在正在编写 Jenkins 管道脚本(声明式)。基本上是这样的:
pipeline {
agent any
environment {
NLS_LANG = 'GERMAN_GERMANY.AL32UTF8'
}
stages {
stage('Test') {
steps {
script {
echo "Test"
}
}
}
}
}
脚本本身工作正常。但是我们现在发现,jenkins 首先检查我们的 SVN 存储库以找到 Jenkinsfile(在 job Folder
> C:\jenkins_home\jobs\<Projectname>\jobs\<Jobname>
中的文件夹 workspace@script
中检查)。
然后整个 SVN 在我没有写在 Jenkinsfile 中的第二步中再次检出(标题:“Declarative: SCM Checkout
”)。
如果我们可以更改此签出的路径,那就没问题了,因为目前它会在 job folder
中新创建的 workspace
文件夹中签出。
这里是管道作业控制台输出的屏幕截图:
如何实现自定义工作区的签出?
最好它只会在第一次签出时单独签出 Jenkinsfile,而不是整个存储库。
我试图将 repository url
更改为保存 Jenkinsfile 的文件夹(单独),但是管道也(仅)在第二次结帐时检查此文件夹。
这里是控制台输出的屏幕截图:
在解决这个问题时可能与谁有关:使用 ws('/path/to/dir') 分配不同的目录(参见 Pipeline: Nodes and processes)
pipeline {
agent any
environment {
NLS_LANG = 'GERMAN_GERMANY.AL32UTF8'
}
stages {
stage('Test') {
steps {
script {
echo "Test"
ws('/path/to/dir'){
//dosomething here, like "checkout scm"
}
}
}
}
}