## 介绍
```
利用jenkins 自动化部署github,这样只需要在本地提交项目到github就可以了,剩下的全交给Jenkins自动部署
```
## 配置github
### webhooks
> payload url 后面会配置到,等会过来配置
![](https://img.kancloud.cn/fc/6e/fc6e1ab4d0c592dafc8f356c3c6b0cf8_1243x511.png)
![](https://img.kancloud.cn/e9/44/e94432b4184dc9e0458a5ec79a16c53e_792x725.png)
###
### access tokens
点击在右上角**settings**,剩下如下操作
![](https://img.kancloud.cn/0d/a4/0da4177d0c1d8048a7618bbaa4fb7388_342x229.png)
![](https://img.kancloud.cn/93/d1/93d1bebb555711e6d3bc7062f9944887_1177x765.png)
> 注意,记下当前密钥
## jenkins配置
如下操作
![](https://img.kancloud.cn/69/6f/696f518fb5032dedf4cf23f7ba3334cd_1455x577.png)
### 配置ssh
* 先填下对应信息
![](https://img.kancloud.cn/7a/4c/7a4ca895708b2141cf01f038200392b2_1154x498.png)
* 然后配置凭据
![](https://img.kancloud.cn/e2/6c/e26c64adc96b6af21bee0e39e27624f0_1125x482.png)
* 用户名:服务器账号
* 密码:服务器密码
* ID:自定义
* 描述:自定义
然后在Credentials选择刚才创建的凭据,然后点击Check connection会出现如下类似信息
```
Successfull connection
```
### GitHub配置
点击高级选项,然后先配置如下信息
![](https://img.kancloud.cn/a8/6d/a86dc85ddf44bb0be658cc04e3550aca_1128x712.png)
* 在Hook URL处的ur记住,这个地址应该填在上面所述的payload url 处
* 名称:自定义
* API URL:不能修改
* 凭据:如下
![](https://img.kancloud.cn/68/6b/686b847f2683db720c1afe059dae0af3_1159x509.png)
* secret:填写刚才在github生成的密钥
* ID:自定义
* 描述:自定义
### Git配置
![](https://img.kancloud.cn/84/32/843243ae239e25dd60f2fea3229ba3b7_1008x173.png)
###
### Publish over SSH
步骤简单,就不说了
![](https://img.kancloud.cn/c3/08/c3084df7c51a7672f339961d7d6442d3_1103x679.png)
### 创建Job
点击首页的新建任务,自定义任务名称,然后选择构建一个自由风格的软件项目
填写如下
#### github 配置
![](https://img.kancloud.cn/c1/9f/c19fd464d77edfad64eede60561185ca_1124x118.png)
#### git 配置
![](https://img.kancloud.cn/7f/88/7f883be48393664eaf1bb8a3dfb05985_1276x702.png)
#### 配置git凭据
![](https://img.kancloud.cn/c4/c5/c4c59b56db967558cd99dcefe2b70867_1137x472.png)
* 用户名:github用户名或者邮箱
* 密码:github账号密码
* ID和描述:自定义
### 构建触发器
如图勾选,这样,当本地提交项目到github时,就能够自动触发进行部署
![](https://img.kancloud.cn/f7/e2/f7e2c306eb63acdc7d38aa6fd573fb6c_970x260.png)
到这样里,就可以已经完成了,自动化部署,等下进行测试
### 构建
由于自动化部署的项目,没有部署到理想的路,因此在这里执行远程命令,将项目移动正确的位置
![](https://img.kancloud.cn/79/18/7918809dfdf9ba53eef529c1e97ffffb_1183x485.png)
* SSH SITE:在前面已经配置好了,选中即可
* Command:这里是远程在服务器命令行中所执行的命令
```
利用cp命令进行覆盖和rm -rf 删除
```