Jenkins 文件夹属性:是否可以在 SCM 部分使用文件夹定义的属性?

Jenkins 文件夹属性:是否可以在 SCM 部分使用文件夹定义的属性?

对于我们发布的每个版本,我都有大量的 Jenkins 作业。我希望能够轻松定义新版本,并且很高兴发现文件夹属性 插入

我为该版本定义了一个文件夹属性:

文件夹属性定义

之后我定义了一个尝试作业,它使用文件夹定义并回显它的值。

职位描述(自由式)

我运行它并获取日志上的值:

version: master
    echo 'folder version: master'
    folder version: master
    Finished: SUCCESS

现在,我为该作业添加了一个 SCM 定义:

scm 定义

但我在日志中收到错误。如您所见,$folder_version 没有获得“master”值。

git rev-parse refs/remotes/origin/$folder_version^{commit} # timeout=10
git rev-parse refs/remotes/origin/refs/heads/$folder_version^{commit} # timeout=10
git rev-parse refs/heads/$folder_version^{commit} # timeout=10
   ERROR: Couldn't find any revision to build. Verify the repository and        branch configuration for this job.

我在这里遗漏了什么?

答案1

感谢您使用我的插件。关于您的问题,我相信在自由式作业中,SCM 步骤不会尝试插入选择器字符串,因此您可以看到控制台输出将呈现以下内容:

git rev-parse refs/remotes/origin/origin/$folder_version^{commit} # timeout=10

其中$folder_version预期的占位符未被插入。

或者,切换到管道作业并执行以下操作:

stage('Test SCM'){
    node{
        withFolderProperties{
            echo("Branch is '${env.folder_version}'")
            git branch: env.folder_version, credentialsId: 'my-github-credentials', url: 'https://github.com/my-org/my-project.git'
            isUnix()?sh('ls -la'):bat('dir')
        }
    }
}

我希望这有帮助。

相关内容