如何通过jenkins文件将文件夹中的所有内容部署到具有类似文件夹结构的工件

问题描述

我们正在使用人工制品来存储文件。位置${WORKSPACE}/build/processed/webApps/epmapp/*下的所有文件文件夹都应复制到下面提到的目标位置。

但是只复制文件

stage('Deploy Artifacts') 
        {
            def targetLocation="epmpbcs-release-local/Platform/PBCSVB/${BRANCH_NAME}/latest/"
            def targetLocationBuildNumber="epmpbcs-release/PBCSVB/${BRANCH_NAME}/${env.BUILD_NUMBER}/"
            stdout = sh(script: 'rm -fv ${WORKSPACE}/buildversion.txt',returnStdout: true)
            println("Delete buildversion.txt stdout ################ " + stdout + " ####################")
 
            def buildversion = new File("${WORKSPACE}/buildversion.txt")
//            def w = buildversion.newWriter() 
            buildversion<<"PBCSVB Branch:${BRANCH_NAME},Build Number:${BUILD_NUMBER}"
 
//
            def uploadSpec = """{
                "files": [
                        {
                          "pattern": "${WORKSPACE}/build/processed/webApps/epmapp/*","target" : "$targetLocation"
                        }
                 ]
                }"""

解决方法

您不能一次上传文件和文件夹。这是上传工件一部分的限制。 在上传工件之前,您需要再添加一个任务。 添加步骤以.zip或.gzp格式创建“ epmapp”文件夹,然后上传。

def uploadSpec = """{
            "files": [
                    {
                      "pattern": "epmapp.zip","target" : "$targetLocation","recursive": "false"
                    }
             ]
            }"""

使用此link可获得更多信息。