3

如何将当前工作空间中的文件作为参数传递给构建作业,例如:

build job: 'other-project', parameters: [[$class: 'FileParameterValue', ????]]
4

3 回答 3

2

真是一场噩梦-没有文档,查看了詹金斯代码等。尝试了一切

最终发现这目前不起作用。这是詹金斯错误。

https://issues.jenkins-ci.org/browse/JENKINS-27413

从这里链接到:http: //jenkins-ci.361315.n4.nabble.com/pipeline-build-job-with-FileParameterValue-td4861199.html

您需要传入一个 FileParameterValue

http://javadoc.jenkins.io/hudson/model/FileParameterValue.html

于 2017-10-28T00:36:03.920 回答
2

您可以传递文件的完整路径,您可以这样做:

node('master') {
  //Read the workspace path
  String path = pwd();
  String pathFile = "${path}/exampleDir/fileExample.ext";
  //Do whatever you wish with the file path 
}
于 2016-05-18T14:36:59.943 回答
0

此方法假定您在当前作业的工作区中有该文件。

pipeline
    {
        agent any
        stages {
            stage('Pass file type param to build job') {
                steps {
                    script {
                        def propertiesFilePath = "${env.WORKSPACE}/sample.properties"
                        build job: 'other-project',
                                parameters: [[$class: "FileParameterValue", name: "propertiesFile", file: new FileParameterValue.FileItemImpl(new File(propertiesFilePath))]]

                    }
                }
            }
        }
    }

此处下游/子作业的名称为“other-project”,该下游/子作业中的文件类型参数名称为“propertiesFile”。FileParameterValue.FileItemImpl类型在FileParameterValue类中定义,在jenkins内部用于处理 FileItem,同时也为其添加了序列化支持。

于 2020-06-04T18:33:10.463 回答