jenkins自动化构建打包 android(三)

在第一篇,我们用的是轮询去检查git是否更新,我试了最低也要3分钟轮询一次,反应算不上了灵敏。

这一篇我们通过webhook来实现git提交过后,立马就拉取代码打包。

首先呢,由于我们的打包机没有公网ip,webhook无法发送请求到我们的打包机上。

所以我们需要利用ssh使打包机在一个有公网ip的机器上开启一个反向隧道,这样访问公网ip的某个端口就会转发到我们打包机上。

有公网ip的机器,我这里用的是阿里云的服务器这个你们自行准备吧。

服务器的系统 我这里是centos7 64位的

首先在服务器的/etc/ssh/sshd_config文件中修改

GatewayPorts yes

jenkins自动化构建打包 android(三)

然后重启sshd服务

sudo service sshd restart

 

输入命令

ssh -fCNR 2147:localhost:8080 [email protected]

我是在windows下的git-bash中使用的  你也可以用其他的工具

mac直接用终端就行

jenkins自动化构建打包 android(三)

输入后回车   再输入密码就ok了

因为之后需要用脚本开机就开启这个反向隧道 不能手动输密码  所以需要配置一个ssh**放在服务器

输入

ssh-****** -t rsa -C "备注  我用的邮箱"

然后按几下回车都用默认的设置就好了  如果你需要文件名和密码之类的  你也可以按照你的来

然后输入ssh-copy-id [email protected] user是你的公网机器的用户名 ip就是公网机器的ip 

再回车  输入一下密码   将这个**配置到你的服务器就ok了

然后你可以试着在浏览器输入你的ip:端口号进入你打包机的jenkins了

jenkins自动化构建打包 android(三)

接下来就是webhook

因为我把代码放在coding上  所以  我这里以coding为例子  其他的网上教程很多   关键就是反向隧道

现在jenkins中安装插件

jenkins自动化构建打包 android(三)

安装好之后重启jenkins

这时候在工程配置里面 就能看见这个选项  勾上他

jenkins自动化构建打包 android(三)

登录你的coding在你要构建的项目中新建webhook

填入上面的地址用你的公网ip替换一下localhost  端口号替换成你设置的端口号

点击新建

jenkins自动化构建打包 android(三)

看到状态是个勾就表示成功了,提交一下代码测试一下吧~