前两篇讲解了Jenkins的配置和VS远程发布,现在还有一个问题,VS项目远程发布的时候,配置的是覆盖所有文件重生成的,而通常类似于配置文件这种东西,在本地开发环境和测试环境是不一样的。所以我们通常需要先把测试服务器上面的配置文件单独存放一个地方,VS远程发布完成之后,再把这些配置文件copy过来进行覆盖就可以了。 之前我考虑到使用CMD命令,但是发现使用CMD命令非常繁琐,还有共享文件夹,然后设置操作权限等等。后面索性使用Ftp了。 在Jenkins的安装目录下D:\Program Files (x86)\Jenkins\jobs中可以看到配置的所有项目,在各自项目目录里面有一个workspace文件夹,可以在这个workspace文件夹中新建一个文件夹用于备份服务器上面的配置文件,待构建完成之后,就把这个配置文件以Ftp的形式上传到网站目录。
在使用Ftp上传之前要先搭建好FTP服务器,这里我使用Serv-U,说起微软的IIS搭建Ftp站点,真的蛋疼,用起来一点都不方便,Serv-U用起来那真叫一个爽。
这里需要安装Publish Over FTP Plugin插件,注意之前我安装的FTP publisher plugin
插件,无效,不知道为什么。
安装步骤:
系统管理→管理插件→可选插件→Artifact Uploaders→Publish Over FTP Plugin
安装完成之后,在系统管理——系统设置
然后在项目配置中
Jenkins自带的角色权限管理功能太弱了,只有全局功能,没有项目功能,继续考虑安装插件呗,安装插件Role-based Authorization Strategy
系统管理——Configure Global Security
系统管理——Manage and Assign Roles——Manage Roles
这里新建了一个项目角色b2c和一个全局角色business角色,单独给账户设置项目权限还不行,还要给这个帐号赋值全局角色business,business要赋值read,否则会出现登录不了的问题
添加项目角色时,需要制定匹配项目的模式,如上图中的Pattern,官方文档介绍该选项支持正则表达式,如“Roger-.”表示所有以Roger-开头的项目,“(?i)roger-.*”表示以roger-开头的项目并且不区分大小写,如以ABC开头的项目可以配置为“ABC|ABC.*”,也可以使用“abc|bcd|efg”直接匹配多个项目。
关于新建用户,可以系统管理——管理用户