jenkins和gogs自动推送

jenkins和gogs自动推送

   小白     2021年4月16日 09:46     1817    

1、流程

                                              1.jpg

(1)客户端提交代码给Gogs服务器,触发web钩子;

(2)Gogs服务器通过POST请求将订阅事件信息发送指定的Jenkins地址;

(3)Jenkins服务器收到请求后,会启动构建的触发器,然后将Gogs的代码fetch到本地;

(4)然后Jenkins服务器通过SSH将代码推送到Web服务器指定的地址。

2、部署gogs

https://www.yunweigonghui.com/column/GitLab&git/345/

3、部署jenkins

https://www.yunweigonghui.com/column/Jenkins/227/

4、配置gogs的web钩子

这里选择Gogs

2.png

在仓库设置中管理web钩子中添加

http://192.168.0.218:8080/generic-webhook-trigger/invoke?token=123456

(1)http://192.168.0.218:8080/ :jenkins的地址

(2)generic-webhook-trigger/invoke?token= :固定格式

(3)token后边的值,是在jenkins中配置的。

触发的时间根据实际情况进行选择。

3.png

在添加完钩子之后,再次点进去,会看到测试推送,如果有200的响应就是成功推送

4.png

5、在jenkins安装插件

jenkins的插件这里使用Generic Webhook Trigger和Publish Over SSH

在Manage Jenkins->Manage Plugins->在可选插件中搜索上边两个插件,进行安装。

这个插件是一个通用的插件,Gogs可以使用。

(1)安装完成后,就可以创建item,选择Freestyle Project,名字随意起。

5.png

 

(2)然后进行配置

<1>首先配置源码管理,这里如果是个私有仓库的话需要在Credentials中添加验证用户。

<2>如果是一个公有仓库的话,就不需要验证

<3>这里也可以在Manage Jenkins->Manage Credentials中进行添加也可以。

6.png

 

(3)添加构建触发器

在上边Gogs创建web钩子的时候,其中配置的token就是在这里定义。Token自己定义即可,其他参数可不填。

7.png

8.png

 

(4)构建环境

因为这里需要jenkins服务器使用密钥登录远程发布服务器,所以需要将jenkins生成的公钥发送到远程发布服务器,然后通过jenkins服务器的私钥进行匹配登录。

在jenkins服务器上执行

ssh-keygen

ssh-copy-id 192.168.0.219

将私钥复制到jenkins

9.png

在下边有Test Configuration按钮,可以点击进行测试,如果成功返回Success。

首先在系统管理中添加发布服务器的地址

在Manage Jenkins->Configure System-> Publish over SSH中添加服务器

在构建环境中选择Send files or execute commands over SSH after the build runs,在构建完之后执行。

 

10.png

11.png

6、测试

使用git将写的代码提交到gogs,之后查看jenkins。

可以看到构建历史,然后查看远程服务器目录,可以看到提交的代码已经发布到了指定的位置。

12.png


文章评论

0

其他文章