Gogs

Stella981
• 阅读 673

一、先决条件

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的安装路径要知道。

开始配置环境变量:

Gogs

属性 -> 高级系统设置 -> 高级 环境变量 -> 系统变量 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/

找到提示中的路径,用记事本打开文件,把其中的文字复制到这里

Gogs

插件安装选择推荐插件

Gogs

插件安装完成以后将会创建管理员账户

Gogs

运行后截图:

Gogs

这个时候已经可以放到外网访问了,记得开放8080端口。

四、Jenkins中文化

有些Jenkins安装后是英文的,不是英文或者喜欢英文的请略过这节。

中文化步骤为:

  1. 安装插件:Manage Jenkins -> Manage Plugins -> Available -> Filter中输入Locale -> 勾选后点击Install without restart
  2. 设置中文:Manage Jenkins -> Configure System -> Default Language 中输入 zh_CN -> 勾选Ignore browser preference and force this language to all users -> 点击Save

五、配置Jenkins

系统管理 -> 插件管理 -> 可选插件 -> 过滤:gogs -> 直接安装

Gogs

安装完了后可能要重启,在网址根目录输入/restart进入点击  即可重启,如:http://localhost:8080/restart

开始配置Git

系统管理 -> 全局工具配置 -> 在Path to Git executable中输入Git.exe在服务器中的路径 -> 点击保存

Gogs

至此,配置完成。

六、在Gogs中建立项目并配置

先建立项目然后随便放几个文件进去

Gogs

然后给Jenkins分配(注册)一个专门的账号,注:不要这个账号也可以,反正就是要拿一个有权限的账号给Jenkins

Gogs

给予该项目的只读权限。

 Gogs

添加web钩子,含义:推送代码后告诉Jenkins"帮我发布一下",然后Jenkins就会发布了,这比轮循好多了

推送地址的格式为:http(s)://<你的Jenkins地址>/gogs-webhook/?job=<你的Jenkins任务名>

Gogs

添加完成之后,gogs这边就完成了。

七、添加Jenkins自动化任务

在主界面点击新建任务,输入名字后确定,注:必须和web钩子地址里面的任务名称一致

创建一个自由风格的软件项目

Gogs

点击确定后大概是这个样子的,介绍一下这个界面:这是在任务界面中,在主界面点击luyunDemo,即可到达这个界面。

立即构建就是可以理解为立即发布的意思。

Gogs

 点击配置,如果在gogs中你没有设置密钥文本,那这里可不填

Gogs

点击上图的右下角高级,这个目录是代码发布后放到哪里的意思。举个例子,要是你发布前端代码,托管在iis下,那你这个目录写iis站点的真实物理路径即可实现自动化发布。

Gogs

去源码管理里面设置git相关参数,写成和我一样的就行了。

稍微解释下这几个字段:

  • Repository URL:仓库克隆地址(我用的http,ssh好麻烦要配置)
  • Credentials:git登录账号密码,就用我上面建立的专门的账号就好了
  • Branch Specifier (blank for 'any'):需要构建的分支
  • 源码库浏览器:选gogs就好了

Gogs

然后点击保存吧

Gogs

进到任务里面点击立即构建试试代码有没有到指定路径下

Gogs

Gogs

很明显成功了嘛。如果失败了Jenkins构建历史应该就是红色的点击红球球进去,查看日志。可以看到详细的错误信息。

Gogs

八、自动化构建演示

首先我们把代码克隆下来

Gogs

然后做一些改动

Gogs

用TortoiseGit提交到gogs上

Gogs

提交完成后就看到Jenkins在自动构建了。无需任何操作。只要提交推送就好(我的图不是假的哦~可以看时间,自动化发布真的是非常nice)

Gogs

打开服务器中的目录看看,发现已经成功了。棒棒棒

Gogs

如果不需要推送代码就发布,可以把web钩子删除,或者改成非激活状态就好。(因为有时候还是希望手动去点击构建才构建,而不是推送代码就构建)

如下图所示:

Gogs

你也可以不通过推送代码的方式去测试Jenkins是否可以构建,点击上图右下角“测试推送”按钮即可。

九、通过FTP发布到其他应用服务器

上面都是说构建到本地,我们来看看如何构建到其他服务器。(当然是用FTP最方便,或者你在那个服务器也装一个Jenkins本地发布)

主页面 -> 系统管理 -> 插件管理 -> 可选插件 -> 过滤:FTP -> 选择下图这个直接安装

Gogs

然后去配置吧,主界面 -> 系统管理 -> Publish over FTP -> 点击新增

  • Name:起个名字,后面项目配置里会用的到

  • HostName:FTP主机名(端口号默认21,在高级里面可以改)

  • Username:FTP用户名

  • Password:FTP密码

Gogs

保存后,去任务里面,点击配置。找到构建后操作->增加构建后操作步骤->Send build artifacts over FTP

  • Name:选择全局配置里的

  • Source files:选择你的发布包路径(这里是相对于工作空间的路径)

  • Remote directory:放到远程的哪个路径里(这里是相对于FTP根目录的路径)

 Gogs

配置完成后,点击保存,构建即可!

十、构建基于.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插件

Gogs

然后,web钩子就是码云如下所示

Gogs

参照上面gogs的构建方式即可实现从gitee自动化构建。

码云官方文档:https://gitee.com/help/articles/4193

十三、Jenkins Pipeline

Gogs

Jenkins Pipeline算是Jenkins的一个高级应用吧。我暂时也还不会。

Jenkins Pipeline可以很方便实现流水式的持续交付,执行阶段通过视图一目了然。更过详细的资料可以访问官方文档 https://jenkins.io/zh/doc/book/pipeline/

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

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Docker容器使用jenkins部署web项目
(1)需要安装Docker容器,在Docker容器内安装jenkins,gogs,tomcat。  新建maven项目,添加findbugsplugin。使用docker启动jenkins,gogs,Tomcat的命令gogs:dockerrunitdp10022:22p10080:3000restarta
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这