前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【github 自动部署】github实现自动部署

【github 自动部署】github实现自动部署

作者头像
lomtom
发布2021-10-27 15:23:18
2.9K0
发布2021-10-27 15:23:18
举报
文章被收录于专栏:博思奥园

由于业务的需求,我需要将每次写好的代码编译好后,并且通过ftp工具远程传到服务器上。但是,这样的操作带来的问题是:整个的过程变得相当的复杂。

于是,就有了这篇文章。

我们可以这样理解:

  1. 当我们把代码提交到github上时
  2. github发起一次请求给服务器
  3. 服务器接受请求后,执行拉取git的脚本

这样就实现了整个项目的自动部署。

准备

你需要安装yum、git、go

如果你已经安装过,那么你就可以跳过相应的步骤

并且默认你会ssh秘钥配对,如果不会请翻到最后。

一、安装yum

代码语言:javascript
复制
wget http://yum.baseurl.org/download/3.2/yum-3.2.28.tar.gz
tar -xvf yum-3.2.28.tar.gz

touch /etc/ yum.conf

cd yum-3.2.28
./yummain.py install yum

二、安装git

代码语言:javascript
复制
yum install -y git

git --version

三、安装Go

代码语言:javascript
复制
yum install -y golang

四、安装Webhook

代码语言:javascript
复制
1、使用go 安装
go get github.com/adnanh/webhook


2、使用apt安装
sudo apt-get install webhook

开源项目地址:https://github.com/adnanh/webhook

五、配置服务器

1、在一个目录下克隆github项目 我的在/root/test下拉取项目,项目名也叫test(拉取的项目存在于/root/test/test)

2、在同级目录新建hooks.json(位于/root/test/hooks.json)

定义一些需要webhook服务的钩子。首先创建一个名为hooks.json. 此文件将包含webhook将提供的钩子数组。查看钩子定义页面,查看钩子可以包含哪些属性以及如何使用它们的详细描述。

代码语言:javascript
复制
[
  {
    "id": "deploy",
    "execute-command": "./deploy.sh",
    "command-working-directory": "/root/test/"
  }
]

3、新建你要执行的shell脚本,可以直接执行看脚本是否可用 ./deploy.sh 或者 sh deploy.sh这里为了测试,只有拉取,实际应该比这更复杂 delploy.sh(位于/root/test/deploy.sh)

代码语言:javascript
复制
#! /bin/bash
cd /root/test/test
git pull

六、运行

运行webhook,默认端口9000,所以我们需要开放9000端口。

代码语言:javascript
复制
/root/go/bin/webhook -hooks hooks.json -verbose

在浏览器中访问,控制台即可打印相应日志 这里的deploy与你上方hooks.json文件中的id一致

代码语言:javascript
复制
http://ip:9000/hooks/deploy

七、配置github

如果上方能够测试成功,那么直接复制url到下方配置中,配置好后他会自动发起一次请求。

八、设置后台运行

使用nohup来使我们的webhook后台运行并且打印日志:log.txt 为存放日志的文件

代码语言:javascript
复制
[root@master test]# nohup /root/go/bin/webhook -hooks hooks.json -verbose >log.txt 2>&1&
[1] 3060

九、愉快玩耍

然后你就可以在自己电脑上写代码,写好后,他自己就会部署,爽歪歪。

参考:1、linux下yum:https://blog.csdn.net/iamhuanggua/article/details/60140867 2、git生成证书:http://www.iimt.me/article/34 3、 钩子自动部署:https://blog.csdn.net/enoch612/article/details/105763647 4、webhook:https://github.com/adnanh/webhook 5、linux后台运行的几种方式:https://www.cnblogs.com/zsql/p/10827587.html

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 博思奥园 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 准备
  • 一、安装yum
  • 二、安装git
  • 三、安装Go
  • 四、安装Webhook
  • 五、配置服务器
  • 六、运行
  • 七、配置github
  • 八、设置后台运行
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档