Jenkins 使用 FTP插件上传文件
流水线中会存在将编译打包生成的文件上传到制品库,比较简单的做法就是搭建一个 FTP服务器,然后安装 Jenkins插件将文件上传
-> 插件下载
在 Jenkins插件管理中搜索关键字 ftp
即可。
google 到的结果大多都是 Publish Over FTP
,是一个官方插件,所以下载这个肯定没错。
同时我还注意到另外一个插件 phoenix-autotest-plugin (opens new window), 感觉使用更加简单,
如下:
phoenixFtp(serverHost: '192.168.1.1',
credentialsId: 'a52b4173-cf98-47a0-bd02-3e9019a6082d',
srcFile: 'pom.xml', targetDir: '.')
1
2
3
2
3
但需要在代码中指定 host和credentials, Publish Over FTP
则是全局配置,直接使用
-> FTP 上传
Publish Over FTP
的方式如下:
- 在全局配置中配置好对应 FTP服务器,测试无误
- 使用 片段代码生成器 生成目标流水线脚本片段
eg:
ftpPublisher alwaysPublishFromMaster: false,
paramPublish: null,
masterNodeName: '',
continueOnError: false,
failOnError: true,
publishers: [[
configName: 'ftp-server',
transfers: [[asciiMode: false, cleanRemote: false,
excludes: '', flatten: false, makeEmptyDirs: false,
noDefaultExcludes: false, patternSeparator: '[, ]+',
remoteDirectory: '/release',
remoteDirectorySDF: false,
removePrefix: 'test', sourceFiles: 'test/**/*.zip'
]],
ftpRetry: [
retries: 10,
retryDelay: 5000
],
usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: true
]]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
注意
paramPublish
,masterNodeName
是新版本里的必需参数,代码片段生成器没有把它们加上,需要手动添加- 文件大小为0的空文件不会被上传
-> FTP 下载
curl -O ftp://<url>/path/to/specific/file
1
ftp插件居然只有上传没有下载的功能!!
所以 ftp下载只能退而求其次了,一般装了 Git 根目录cmd下会自带 curl工具。
或者封装一个脚本,调用实现该功能,这里给个 python脚本的示例 ftp.py (opens new window)
-> 参考
编辑此页 (opens new window)
更新于: 2019-10-01