Jenkins使用上传的文件(File Parameter)作为参数

需求背景

自动任务需要用户手工上传文件,代码中使用该文件的内容进行后续操作。笔者Jenkins安装在Windows机器上,和主流Linux或许略有差异。

实现方法

增加一个File Parameter:

在这里插入图片描述

构建步骤:

在这里插入图片描述

测试构建:

在这里插入图片描述

测试结果

在这里插入图片描述

在这里插入图片描述

方案说明

参考Jenkins的帮助声明和实测,文件路径是文件,而不是路径。构建时上传的文件会覆盖这个目标文件。
在这里插入图片描述
在Jenkins服务器上无法直接打开这个文件(猜测可能做了加密)。

copy case_files\case_file.json case_files\%case_files/case_file.json%

如上命令,将目标文件复制一份出来,并且使用变量的方式获取上传文件的原始文件名作为拷贝后文件名,经过测试,复制出来的文件可以正常打开(此处原理尚不明确)。
此时,已经可以获取到构建时用户上传的文件名、文件路径,将文件名和文件路径作为代码执行的输入参数,即可完成需求。

### Jenkins 文件参数使用方法 在 Jenkins 中配置文件参数允许用户通过浏览器上传文件作为构建的一部分。这使得可以在构建过程中动态提供必要的资源或数据文件。 #### 配置文件参数 当创建一个新的自由风格项目或是流水线时,在项目的配置页面找到“此项目可以接受外部输入”的选项,接着添加一个名为“File Parameter Definition”的参数定义[^2]: - **名称**: 定义该参数的名字,比如 `myUploadFile`。 - **默认文件位置 (可选)**: 可以为这个参数设置一个默认路径,如果未指定,则会放置于工作区根目录下。 一旦保存这些更改,每次触发构建前都会提示用户提供要上传文件。 #### 构建脚本中的应用 对于 Shell 脚本来说,可以通过 `${PARAMETER_NAME}` 的形式来获取到所传入文件的实际存储地址。假设前面设定的是 `myUploadFile` ,那么就可以像下面这样操作: ```bash echo "Processing uploaded file at ${WORKSPACE}/myUploadFile" cat "${WORKSPACE}/myUploadFile" ``` 上述命令将打印出位于当前工作空间下的 `myUploadFile` 文件的内容。 #### 实际案例展示 考虑这样一个场景:有一个 Python 应用程序需要读取特定格式的数据集来进行测试。此时可以让开发者们直接上传他们想要使用的 CSV 或 JSON 数据集作为构建过程的一部分。之后利用类似如下所示的方式处理上传来的文件: ```python import pandas as pd data_path = 'path/to/myUploadFile' # 这里应替换为实际的工作区内路径 df = pd.read_csv(data_path) print(df.head()) ``` 以上代码片段展示了如何加载并查看由 Jenkins 用户上传的数据文件内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值