翼度科技»论坛 云主机 LINUX 查看内容

Jenkins上传文件报错Support for FileParameters in the input step is dis

7

主题

7

帖子

21

积分

新手上路

Rank: 1

积分
21
 
【报错信息】
ERROR: Support for FileParameters in the input step is disabled and will be removed in a future release.
Details on how to migrate your pipeline can be found online: https://jenkins.io/redirect/plugin/pipeline-input-step/file-parameters.
 
【事件背景】
在迁移Jenkins Job到新的Jenkins服务器时,Pipeline中的上传文件步骤在新服务器报错。
 
【相关资料】
链接1:https://jenkins.io/redirect/plugin/pipeline-input-step/file-parameters
 
 
【调查结果】
根据链接1大概了解,Pipeline的input step之前可以直接上传文件,现在由于某些安全原因被禁用了。目前,提供了替代方案,即先上传base64再输出到指定文件。
解决方法:
1.确保Jenkins已安装File Parameters插件
如果不安装,执行步骤2时应该会报错误:No such DSL method 'base64File' found among steps […]
2.参考下方示例来上传文件:
  1. def fileBase64 = input message: 'Please provide a file', parameters: [base64File('file')]
  2. node {
  3. withEnv(["fileBase64=$fileBase64"]) {
  4. sh 'echo $fileBase64 | base64 -d > myFile.txt'
  5. // powershell '[IO.File]::WriteAllBytes("myFile.txt", [Convert]::FromBase64String($env:fileBase64))'
  6. }
  7. // do something with the file stored in ./myFile.txt
  8. }
复制代码
3.按照步骤2示例,上传文件内容一般会被传到Jenkins的$WORKSPACE路径下的myFile.txt文件。执行效果如下:
悬停相关stage等待弹出窗口:
 

上传相关文件

 
 
扩展:
假如我们上传的文件内容是几行字符串:
  1. ABC
  2. XYZ
复制代码
需要读取文件中每行字符串形成数组,可以如下配置:
  1. def myContext = readFile "${WORKSPACE}/myFile.txt"
  2. def myList = myContext.tokenize()
  3. println myList
复制代码
最终输出结果:[ABC,XYZ]
 

来源:https://www.cnblogs.com/jiarui0901/p/17217891.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具