Loading

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安装后是英文的,不是英文或者喜欢英文的请略过这节。

中文化步骤为:

  1. 安装插件:Manage Jenkins -> Manage Plugins -> Available -> Filter中输入Locale -> 勾选后点击Install without restart
  2. 设置中文: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/

 

 

终于写完了,如果对你有帮助希望点个推荐,支持下博主。。

posted @ 2019-05-11 16:11  碌云  阅读(715)  评论(3编辑  收藏  举报