groovy 将大(mb)文件从jenkins GUI上传到相应的构建工作区

z18hc3ub  于 2023-11-16  发布在  Jenkins
关注(0)|答案(1)|浏览(156)

我有一个场景,我需要从Jenkins GUI上传大(MB的)文件到工作区?
有没有办法达到这个要求?
请告诉我可用的解决方案。
文件应上传到工作区。提前感谢

jvidinwx

jvidinwx1#

要将大文件从Jenkins GUI上载到相应的构建工作区,可以使用Jenkins中的“File Parameter”特性。该特性允许用户通过Jenkins GUI上载文件,然后构建作业可以在其工作区中访问该文件。

┌────────────────┐     ┌─────────────┐     ┌────────────────────────────────┐
│ Jenkins Server │ ──> │ Jenkins GUI │ ──> │ File Upload via File Parameter │
└────────────────┘     └─────────────┘     └────────────────────────────────┘
       │                                           │
       V                                           V
┌────────────────┐                     ┌──────────────────────────────┐
│ Build Workspace│ ◄────────────────── │ File copied to workspace     │
│                │   during build      │ during build (using script)  │
└────────────────┘                     └──────────────────────────────┘

字符串

  • 转到Jenkins作业配置页面。
  • 在“常规”部分下,选中“该项目已参数化”。
  • 添加一个“文件参数”类型的新参数。
  • 输入档案参数的名称(例如UPLOAD_FILE)。

在您的建置命令档(如shell命令档)中,请以参数名称来指涉上传的档案。对于管缐工作,您可以直接在命令档中使用它。

# Shell Script Example
# Access the uploaded file using the parameter name
cp $UPLOAD_FILE ${WORKSPACE}/desired-subfolder/
// Pipeline Script Example
pipeline {
    agent any
    parameters {
        file(name: 'UPLOAD_FILE')
    }
    stages {
        stage('Upload File') {
            steps {
                script {
                    // Copy the file to the workspace
                    sh "cp \$UPLOAD_FILE \${WORKSPACE}/desired-subfolder/"
                }
            }
        }
    }
}

的数据
您可能想试试"Jenkins File Parameter plugin"
提供了与管道兼容的文件参数的替代类型,并且不会受到Jenkins核心中内置类型的体系结构缺陷的影响。
使用文件参数插件,Jenkins管道脚本在处理文件上载时会略有不同:
对于base64文件参数:

pipeline {
    agent any
    parameters {
        base64File 'FILE'
    }
    stages {
        stage('Upload File') {
            steps {
                withFileParameter('FILE') {
                    // Use the file here, for example, copying it to a desired location
                    sh 'cp $FILE ${WORKSPACE}/desired-subfolder/'
                }
            }
        }
    }
}


对于隐藏的文件参数:

pipeline {
    agent any
    parameters {
        stashedFile 'FILE'
    }
    stages {
        stage('Upload File') {
            steps {
                unstash 'FILE'
                // Use the file here, for example, moving it to keep the original filename
                sh 'mv FILE ${WORKSPACE}/desired-subfolder/$FILE_FILENAME'
            }
        }
    }
}

相关问题