jenkins配置ftp发布

羽林君

共 4920字,需浏览 10分钟

 ·

2023-11-02 01:00

我们jenkins发布我们的编译固件去制品库,其中上传方式有很多中,这里提供FTP的两种方式:

来源:https://www.cnblogs.com/zz0412/p/jenkins_jj_04.html

来源:https://www.liujiajia.me/2020/3/26/jenkins-upload-to-ftp-server-with-pipeline

一、 GUI插件配置


说明:这个插件可以将构建的产物(例如:Jar)发布到FTP中去。

官方说明:Publish Over FTP Plugin

安装步骤:

系统管理→管理插件→可选插件→Artifact Uploaders→Publish Over FTP Plugin

系统设置

FTP Server Name:给你自己看的名字,爱叫什么叫什么

Hostname:主机IP或者域名

Username:ftp登陆用户名

Password:ftp密码

Remote Directory:远程根目录(建议设置为:/)

图1 系统设置基本界面


点击Test Configuration上面的高级,如下图:

Port:端口(不知道问管理员去)

Timeout (ms):超时时间(毫秒)

Use active data mode: (未选中)默认选项使用PASV(被动模式),选中使用PORT (主动模式)

Don't make nested dirs:不创建下级目录(具体的自己看帮助)


图2 系统设置高级界面

上图右下角还有一个高级选项。有兴趣的自己可以折腾下。提示:你需要先保存后,刷新页面,在配置。不然有个选项无法选择的。

 项目配置

启用步骤:

构建后操作→Add post-build action→Send build artifacts over FTP

FTP Server Name:选个一个你在系统设置里配置的配置的名字

Transfer Set Source files:需要上传的文件(注意:相对于工作区的路径,可以是单个文件也可以是目录)

Remove prefix:移除目录(只能指定Transfer Set Source files中的目录)

Remote directory:远程目录(根据你的需求填写吧,因为我这儿是测试,所以偷懒直接用/)


 图3 项目设置基本界面

点击Remote directory后面的高级,如下图

Exclude files:排除的文件(在你传输目录的时候很有用,使用通配符,例如:**/*.log,**/*.tmp,.git/)

Pattern separator:分隔符(配置Exclude files和Source files的分隔符。如果你这儿更改了,上面的内容也需要更改)

No default excludes:禁止默认的排除规则(具体的自己看帮助)

Make empty dirs:此选项会更改插件的默认行为。默认行为是匹配该文件是否存在,如果存在则创建目录存放。选中此选项会直接创建一个目录存放文件,即使是空目录。(个人理解)

Flatten files:只在ftp上建立文件,不创建目录(除了远程目录)

Remote directory is a date format:远程目录建立带日期的文件夹(需要在Remote directory中配置日期格式),具体格式参考下表:

Remote directory Directories created
'qa-approved/'yyyyMMddHHmmss qa-approved/20101107154555
'builds/'yyyy/MM/dd/'build-${BUILD_NUMBER}' builds/2010/11/07/build-456 (if the build was number 456)
yyyy_MM/'build'-EEE-d-HHmmss 2010_11/build-Sun-7-154555
yyyy-MM-dd_HH-mm-ss 2010-11-07_15-45-55

Clean remote:上传前会删除远程目录中的所有的文件(血的教训啊,测试的时候用的是运营小组的ftp,然后一不小心就把他们的数据删除了,害的我去做数据恢复。)

ASCII mode:文件传输的方式,一般默认不选。


  图4 项目设置高级界面

 好了,常用的选项就这些,其他的自己折腾吧。这个插件适合动手能力强的人。



二、 Pipeline 脚本发布

1. 安装 Publish Over FTP 插件

首先要在 Manage Jenkins → Manage Plugins 中安装 Publish Over FTP 插件。

2. 配置 FTP Server

之后需要在 Manage Jenkins → Configure System 页面的 Publish Over FTP 区域添加 FTP Server,其中的 Name 在后面的 Pipeline 脚本中会用到。

3. Pipeline 脚本

最后在脚本中通过 ftpPublisher 方法执行上传操作。

关于脚本的写法可以在 流水线语法 页面选择 ftpPublisher: Send build artifacts over FTP 示例自动生成脚本。

需要注意的有以下几点:

  • masterNodeName 和 paramPublish 参数是必须的,自动生成的脚本中不知道为什么不含这两个参数;

  • publishers → configName 值为第二步中设置的 FTP Server Name

  • remoteDirectory 指定上传的远端目录

  • sourceFiles 指定需要上传的文件

  • removePrefix 设置为需要过滤掉的文件前缀

    • 下面的示例中会自动将 OctopusSoa/OctopusApi/target/ 目录下的所有文件上传到 FTP 服务器的 server 目录下。

    • 如果 removePrefix 为空,则会上传到 server/OctopusSoa/OctopusApi/target/ 目录下。

stage('Upload') {    steps {        ftpPublisher    alwaysPublishFromMaster: false,                        continueOnError: false,                        failOnError: false,                        masterNodeName: '',                        paramPublish: null,                        publishers: [[                            configName: 'SOA-D',                            transfers: [[                                asciiMode: false,                                cleanRemote: false,                                excludes: '',                                flatten: false,                                makeEmptyDirs: false,                                noDefaultExcludes: false,                                patternSeparator: '[, ]+',                                remoteDirectory: 'server',                                remoteDirectorySDF: false,                                removePrefix: 'OctopusSoa/OctopusApi/target',                                sourceFiles: 'OctopusSoa/OctopusApi/target/*.jar'                            ]],                            usePromotionTimestamp: false,                            useWorkspaceInPromotion: false,                            verbose: false                        ]]    }}



                             ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧  END  ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧


推荐阅读

【1】jetson nano开发使用的基础详细分享

【2】Linux开发coredump文件分析实战分享

【3】CPU中的程序是怎么运行起来的 必读

【4】cartographer环境建立以及建图测试

【5】设计模式之简单工厂模式、工厂模式、抽象工厂模式的对比

【羽林君】本公众号全部原创干货已整理成一个目录,回复[ 资源 ]即可获得。


浏览 134
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报