Как развернуть все содержимое папки в artifactory с аналогичной структурой папок через файл jenkins

#jenkins #jenkins-pipeline #artifactory #jenkins-groovy #jfrog

#дженкинс #дженкинс-конвейер #artifactory #дженкинс-заводной #jfrog

Вопрос:

Мы используем artifactory для хранения наших файлов. Все файлы и папки в разделе location ${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"
                        }
                 ]
                }"""
  

Ответ №1:

Вы не можете загружать файлы и папки одновременно. Это ограничение на загрузку части артефакта. Вам нужно добавить еще одну задачу перед загрузкой артефакта. Добавьте шаг для создания папки «epmapp» в формате .zip или .gzp, а затем загрузите.

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

Используйте эту ссылку для получения дополнительной информации.