#工具箱
最近终于将Ghost前后端一体的身份转变为只作为提供数据的CMS,前端则转为使用纯静态页面,使用11ty生成并部署在了Netlify上。
恰好Ghost自带的WebHook通知功能可以在执行文章、页面、Tag甚至会员注册等操作时触发Webhook通知,同步触发部署操作,作为Jamstack的后端CMS工具可谓是十分好用。
我们只需进入Ghost后台,进入 Integrations
> Add custom Integrations
,起个名字,然点击下方的 Add Webhook
即可完成。
不过在使用Ghost的Webhook通知触发Netlify的时候发现在 文章内容过长 时Netlify会出现payload不能超过140kb,并build失败的提示。
我查了一下资料,发现 Build payload exceeded limit of 140 KB - HUGO and Sanity.io 这篇文章提到两种解决办法
第一种缩减Ghost发送内容的方法需要改Ghost源码,对于我目前这个水平来说明显不太现实。
所以只能用第二种办法了。
我尝试了一下文章内提到的Zapier后发现的确可以正常触发Netlify的build操作。
不过Zapier免费版只支持100个plan,并且Ghost中不同的触发操作每一个都要手工创建一个触发器,可谓十分麻烦了。
所以,有没有其他工具?
答案是当然有拉 —— actionsflow,一款利用Github Acion实现 IFTTT/Zapier 同样效果的开源工具。
可以看官方的安装教程,我这里总结一个简单版的。
.github/workflows/actionsflow.yml
文件中的的下面两行注释取消,意思让程序每15分钟触发一次action。如果你像我一样只在需要的时候触发,可以不取消。on:
schedule:
- cron: "*/15 * * * *"
workflows
下创建github action格式的工作流文件就可以了,这里贴一份我的webhook配置。为了安全我这里将Netlify的webhook key使用secrets变量填入。Netlify的build webhook在这里可以查看。# 填写规则
https://webhook.actionsflow.workers.dev/<用户名>/<rep名>/<workflows计划名>/<触发器类型>?__token=<yourgithubtoken>
# 我的示例
https://webhook.actionsflow.workers.dev/rebron1900/g-actions/netlify/webhook?__token=ghp_Nx17JGwMsjfdsafFD82nfsajn9rh19
目前还不知道怎么在触发器里组装自定义的消息发给Netlify,之后再满满满研究吧。
actionsflow支持很多种触发事件,列表如下,用法很多,之后有机会再来尝试其他的。
加入评论