Gogs-Windows Server下配合Jenkins自动化发布
一、先决条件
Gogs、Git、JDK、Jenkins。准备好这些安装包。
安装顺序是 Git -> Gogs -> JDK -> Jenkins
安装Gogs和Git,可参考我这篇文章https://www.cnblogs.com/cluyun/p/10822992.html
我这里只讲解Jenkins部分。
Jenkins相关安装包这里下载:(推荐去官网下载,因为官网版本可能更新)
链接:https://pan.baidu.com/s/1KoqzGy83WrM9yfhHIQlDZw
提取码:0set
二、安装JDK
双击jdk-8u181-windows-x64.exe,然后下一步一步步直到完成。JDK的安装路径要知道。
开始配置环境变量:
属性 -> 高级系统设置 -> 高级 环境变量 -> 系统变量 Path -> 编辑;在最后面加上这句,注意分号
;C:\Program Files\Java\jdk1.8.0_211\jre\bin;C:\Program Files\Java\jdk1.8.0_211\bin;
就是JDK中的bin和jre bin的路径,看你自己的安装目录吧。我是默认的。
三、安装Jenkins
解压后双击jenkins.msi,下一步下一步直到完成。
打开http://localhost:8080/
找到提示中的路径,用记事本打开文件,把其中的文字复制到这里
插件安装选择推荐插件
插件安装完成以后将会创建管理员账户
运行后截图:
这个时候已经可以放到外网访问了,记得开放8080端口。
四、Jenkins中文化
有些Jenkins安装后是英文的,不是英文或者喜欢英文的请略过这节。
中文化步骤为:
- 安装插件:Manage Jenkins -> Manage Plugins -> Available -> Filter中输入Locale -> 勾选后点击Install without restart
- 设置中文:Manage Jenkins -> Configure System -> Default Language 中输入 zh_CN -> 勾选
五、配置Jenkins
系统管理 -> 插件管理 -> 可选插件 -> 过滤:gogs -> 直接安装
安装完了后可能要重启,在网址根目录输入/restart进入点击 是 即可重启,如:http://localhost:8080/restart
开始配置Git
系统管理 -> 全局工具配置 -> 在Path to Git executable中输入Git.exe在服务器中的路径 -> 点击保存
至此,配置完成。
六、在Gogs中建立项目并配置
先建立项目然后随便放几个文件进去
然后给Jenkins分配(注册)一个专门的账号,注:不要这个账号也可以,反正就是要拿一个有权限的账号给Jenkins
给予该项目的只读权限。
添加web钩子,含义:推送代码后告诉Jenkins"帮我发布一下",然后Jenkins就会发布了,这比轮循好多了
推送地址的格式为:http(s)://<你的Jenkins地址>/gogs-webhook/?job=<你的Jenkins任务名>
添加完成之后,gogs这边就完成了。
七、添加Jenkins自动化任务
在主界面点击新建任务,输入名字后确定,注:必须和web钩子地址里面的任务名称一致
创建一个自由风格的软件项目
点击确定后大概是这个样子的,介绍一下这个界面:这是在任务界面中,在主界面点击luyunDemo,即可到达这个界面。
立即构建就是可以理解为立即发布的意思。
点击配置,如果在gogs中你没有设置密钥文本,那这里可不填
点击上图的右下角高级,这个目录是代码发布后放到哪里的意思。举个例子,要是你发布前端代码,托管在iis下,那你这个目录写iis站点的真实物理路径即可实现自动化发布。
去源码管理里面设置git相关参数,写成和我一样的就行了。
稍微解释下这几个字段:
- Repository URL:仓库克隆地址(我用的http,ssh好麻烦要配置)
- Credentials:git登录账号密码,就用我上面建立的专门的账号就好了
- Branch Specifier (blank for 'any'):需要构建的分支
- 源码库浏览器:选gogs就好了
然后点击保存吧
进到任务里面点击立即构建试试代码有没有到指定路径下
很明显成功了嘛。如果失败了Jenkins构建历史应该就是红色的点击红球球进去,查看日志。可以看到详细的错误信息。
八、自动化构建演示
首先我们把代码克隆下来
然后做一些改动
用TortoiseGit提交到gogs上
提交完成后就看到Jenkins在自动构建了。无需任何操作。只要提交推送就好(我的图不是假的哦~可以看时间,自动化发布真的是非常nice)
打开服务器中的目录看看,发现已经成功了。棒棒棒
如果不需要推送代码就发布,可以把web钩子删除,或者改成非激活状态就好。(因为有时候还是希望手动去点击构建才构建,而不是推送代码就构建)
如下图所示:
你也可以不通过推送代码的方式去测试Jenkins是否可以构建,点击上图右下角“测试推送”按钮即可。
九、通过FTP发布到其他应用服务器
上面都是说构建到本地,我们来看看如何构建到其他服务器。(当然是用FTP最方便,或者你在那个服务器也装一个Jenkins本地发布)
主页面 -> 系统管理 -> 插件管理 -> 可选插件 -> 过滤:FTP -> 选择下图这个直接安装
然后去配置吧,主界面 -> 系统管理 -> Publish over FTP -> 点击新增
-
Name:起个名字,后面项目配置里会用的到
-
HostName:FTP主机名(端口号默认21,在高级里面可以改)
-
Username:FTP用户名
-
Password:FTP密码
保存后,去任务里面,点击配置。找到构建后操作->增加构建后操作步骤->Send build artifacts over FTP
-
Name:选择全局配置里的
-
Source files:选择你的发布包路径(这里是相对于工作空间的路径)
-
Remote directory:放到远程的哪个路径里(这里是相对于FTP根目录的路径)
配置完成后,点击保存,构建即可!
十、构建基于.NET Framework的web程序
因为我们上传到gogs(git)上的的项目一般都是没有bin目录什么的,这时候就需要Jenkins去帮我们生成。
大致步骤是:(1)Jenkins拉取代码 -> (2)Jenkins编译生成项目 -> (3)Jenkins把编译生成后的项目传到指定目录去
(1)和(3)步骤,上面已经弄完了,所以只需要弄(2)步骤。
这个需要安装MSBuild插件,因为篇幅有点长,我写到了另外一篇博客。
地址:https://www.cnblogs.com/cluyun/p/11180750.html
十一、构建基于.NET Core的web程序
同理,core项目我们也不会有bin目录的。还是需要Jenkins自己去编译生成,不过core方便多了,用命令行就可以了。
不用在Jenkins中装插件了。因为边幅略长,请看我另外一篇博客:
https://www.cnblogs.com/cluyun/p/11286335.html
十二、从Gitee(码云)构建
其实和gogs原理一样,只不过安装插件的时候安装gitee插件
然后,web钩子就是码云如下所示
参照上面gogs的构建方式即可实现从gitee自动化构建。
码云官方文档:https://gitee.com/help/articles/4193
十三、Jenkins Pipeline
Jenkins Pipeline算是Jenkins的一个高级应用吧。我暂时也还不会。
Jenkins Pipeline可以很方便实现流水式的持续交付,执行阶段通过视图一目了然。更过详细的资料可以访问官方文档 https://jenkins.io/zh/doc/book/pipeline/
终于写完了,如果对你有帮助希望点个推荐,支持下博主。。