【问题标题】:How to checkout multiple tfs folders in a single pipeline job如何在单个管道作业中签出多个 tfs 文件夹
【发布时间】:2020-06-14 15:54:16
【问题描述】:

假设有一个 TFS 存储库

http://tfstta.example.com:8080/tfs/DefaultCollection/

并假设该存储库中有五个文件夹

文件夹 1, 文件夹2, 文件夹3, 文件夹4, 文件夹5

在使用 TFS 插件的 Jenkins 中,我可以进行如下配置以从存储库中克隆单个文件夹,

Here is single folder cloaning configuration(请查看)

如何一次克隆多个文件夹?

【问题讨论】:

  • 请帮我解决这个问题。

标签: jenkins plugins tfs jenkins-pipeline checkout


【解决方案1】:

使用以下结构进行管道多次结帐:

stages 
{
    stage("GIT-Checkout") 
    {
        steps 
        {
        checkout([$class: 'GitSCM', branches: [[name: '<PARAM>']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: '<PARAM>', relativeTargetDir: '<PARAM>', timeout: 20 ]], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '<PARAM>', url: '<PARAM>']]])
        } // steps
    } // stage

    stage("GIT-Checkout2") 
    {
        steps 
        {
        checkout([$class: 'GitSCM', branches: [[name: '<PARAM>']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: '<PARAM>', relativeTargetDir: '<PARAM>', timeout: 20 ]], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '<PARAM>', url: '<PARAM>']]])
        } // steps
    } // stage

    stage("GIT-Checkout3") 
    {
        steps 
        {
        checkout([$class: 'GitSCM', branches: [[name: '<PARAM>']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: '<PARAM>', relativeTargetDir: '<PARAM>', timeout: 20 ]], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '<PARAM>', url: '<PARAM>']]])
        } // steps
    } // stage
} //Stages

*Replace <PARAM> with the required values

【讨论】:

  • 嗨@Rakesh Kulkarni,感谢您的快速回复,但我正在寻找 TFS 克隆过程。
  • 它与 TFS @PavanKumarChithari 的结构相似.. 只需使用管道语法为 TFS 格式化并实现相同。
  • 是的,你是对的,但是如果你能看到问题中代码的 sn-p 是仅使用 Pipeline Syntax generator 生成的,那么第一个 sn-p 是与 autocredentials,第二个是 mannualcredentials,自动凭据代码给出 Query returned no result,以及在 mannualcredentials 代码中如何通过 hudson。 util.secret 作为密码的参数。只是“checkout scm”正在克隆文件夹,但我需要多个文件夹,因为我正在尝试使用脚本。我希望你能理解我在这里所面临的情况
【解决方案2】:

您可以检查以下代码:

checkout([$class: 'TeamFoundationServerScm', 
credentialsConfigurer: [$class: 'AutomaticCredentialsConfigurer'], 
projectPath: '$/ProcessControlSystems/RSBatch', 
serverUrl: 'http://tfstta.example.com:8080/tfs/DefaultCollection',  
useOverwrite: true, 
useUpdate: true, 
workspaceName: 'Hudson-${JOB_NAME}-${NODE_NAME}'])

【讨论】:

  • 我得到同样的错误:--- 14:16:14 从 'D2020-03-03T08:46:12Z' 开始查询 '$/ProcessControlSystems/RSBatch' 的远程变更集... 14:16:16 查询没有返回结果!
  • 如果使用projectPath: '$/TFS/Server_Path', serverUrl: 'http://tfs-server-url/',,结果如何?
  • 你是这样说的吗? projectPath: '$/TFS/ProcessControlSystems/RSBatch' 这也不起作用
  • checkout([$class: 'TeamFoundationServerScm', localPath: 'D:\\BUILD-Code-scm', projectPath: '$/ROOTDIR/Modules', serverUrl: 'http://XXX&gt;XXX.com:8080/tfs/ROOTDIR', useOverwrite: true, useUpdate: true, userName: 'TLR\\UNMAE', password: hudson.util.Secret.fromString('PASSWORD'), workspaceName: 'Hudson-${JOB_NAME}-${NODE_NAME}']) 怎么样?
  • 谢谢@Cece Dong
【解决方案3】:

终于This Code worked for me,谢谢大家回复。

现在我可以通过更改项目路径在单个 groovy 文件中多次使用此代码。

withCredentials([string(credentialsId: 'PASSWORD-FORMASTAPPS', variable: 'PASSWORD')]) 
{
    checkout([$class: 'TeamFoundationServerScm',
    projectPath: '$/***Folder1 path***', 
    serverUrl: 'http://example1.com:8080/tfs/DefaultCollection', 
    useOverwrite: true, 
    useUpdate: true, 
    userName: 'TEN\\Uxxxxxxx', 
    password: hudson.util.Secret.fromString(PASSWORD),
    workspaceName: 'Hudson-${JOB_NAME}-${NODE_NAME}'])
    echo password
}

withCredentials([string(credentialsId: 'PASSWORD-FORMASTAPPS', variable: 'PASSWORD')]) 
{
    checkout([$class: 'TeamFoundationServerScm',
    projectPath: '$/***Folder2 path***', 
    serverUrl: 'http://example1.com:8080/tfs/DefaultCollection', 
    useOverwrite: true, 
    useUpdate: true, 
    userName: 'TEN\\Uxxxxxxx', 
    password: hudson.util.Secret.fromString(PASSWORD),
    workspaceName: 'Hudson-${JOB_NAME}-${NODE_NAME}'])
    echo password
}

【讨论】:

  • 第二次结帐后,第一个结帐文件夹似乎被清除了..如果我使用'useUpdate',第二个结帐不会得到所有文件
猜你喜欢
  • 2021-05-10
  • 1970-01-01
  • 1970-01-01
  • 2011-11-23
  • 2019-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-06
相关资源
最近更新 更多