webhooks 实现自动部署

webhook 允许生成或设置集成,例如 GitHub AppsOAuth Apps,以订阅 GitHub.com 上的某些事件。 当触发其中某个事件时,我们将向 web 挂钩的配置 URL 发送 HTTP POST 有效负载。 Web 挂钩可用于更新外部议题跟踪器、触发 CI 构建、更新备份镜像,甚至部署到生产服务器。 您只受想象力的限制。

这是一个通用的解决方案,用户可以自己根据不同的需求,来编写自己的脚本程序(比如发邮件,自动部署等)。

GitHub实现


image.png

nodejs代码

const express = require('express')
const { exec } = require('child_process');
const app = express()
app.use(express.json())
const port = 9997

app.post('/', (req, res) => {
  //验证密码
  if (req.body.password == 'Mc2SajhBp5LTnJ') {
    res.send('success: ' + new Date())
    
    //执行打包命令
    exec('cd /root/home/web/music-react && npm i && npm run build', (error, stdout, stderr) => {
      console.log(error, stdout, stderr)
    })
  }
})

app.listen(port, () => {
  console.log(`Example app listening on port ${port}`)
})
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容