缘由
最近一个朋友说想做一个APP的壳子,里面嵌套H5的页面。 所以我就帮他搞了,APP的壳子找的安卓的同事写的,H5的页面的web 服务帮他搭建好了。但是又不能因为H5的页面代码更新要我每次去服务器上拉去代码,所以就像,能不能在每次提交代码之后就自动拉去代码。这里就是WebHooks
的使用了。
其实在很早就知道这个东西,只是一直没实践过。这次实践之后发现实现功能还是很简单的,下面就记录下来。
码云的设置
您的项目-管理-WebHooks
在URL栏中输入接口地址,在选择事件中选择需要的事件,我只勾选了push
。
这里设置之后可以测试的,这个是后续的事情。
接口实现
下面的代码需要结合我之前的Node.js系列文章一起看。
var express = require('express');
var router = express.Router();
var process = require('child_process');
router.all('/webhook/index', function(req, res, next) {
process.exec('cd /home/manage && git pull',
function (error, stdout, stderr) {
if (error !== null) {
console.log('exec error: ' + error);
}
});
res.end(JSON.stringify({
msg: 'webhook/index',
status: 100,
res: 'res'
}));
})
module.exports = router;
这里其实就是child_process模块的一个简单使用。
代码push
之后会调用这个接口,再执行命令,先到制定的目录再执行git pull
。
总结
其实这里关于WebHook
和child_process的使用还可以继续的发掘,这个等以后再去慢慢研究了。