You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过file参数触发Jenkins声明式pipeline任务并获取上传文件

Jenkins声明式流水线使用上传文件参数方案

基础配置说明

首先在流水线任务的参数设置中添加文件(File)类型参数,自定义参数名即可,示例中我们使用UPLOAD_FILE作为文件参数名。

上传文件的存储与调用规则

  • 触发构建时上传的文件会默认存储在当前构建的工作区根目录下,保留用户上传的原始文件名
  • 直接通过params.UPLOAD_FILE即可获取该文件在构建节点上的绝对路径,无需手动查找存储位置

完整声明式流水线示例

pipeline {
    agent any
    // 定义文件参数
    parameters {
        file(name: 'UPLOAD_FILE', description: '上传需要处理的文件')
    }
    stages {
        stage('文件校验') {
            steps {
                script {
                    // 输出文件路径与名称
                    echo "上传文件绝对路径:${params.UPLOAD_FILE}"
                    echo "上传文件原始名称:${new File(params.UPLOAD_FILE).getName()}"
                }
                // 查看工作区文件列表,确认文件已上传
                sh 'ls -lh ${WORKSPACE}'
            }
        }
        stage('自定义文件处理') {
            steps {
                // 示例:如果是压缩包直接解压
                sh 'mkdir -p ./process_output && unzip -o ${params.UPLOAD_FILE} -d ./process_output'
                // 此处可添加你的业务处理逻辑
            }
        }
    }
    post {
        always {
            // 可选:构建结束后清理工作区,避免磁盘占用
            deleteDir()
        }
    }
}

注意事项

  • 若使用分布式构建节点,Jenkins会自动将上传的文件分发到调度到的构建节点工作区,无需手动跨节点拷贝
  • 所有调用场景直接使用params.自定义文件参数名变量即可,不要硬编码路径,适配不同构建场景的路径差异
  • 若需要长期留存上传的文件,可在处理阶段将文件拷贝到公共存储目录,再执行工作区清理操作

内容的提问来源于stack exchange,提问作者lukipedio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 02:27:02