#工具箱
这个月因为测试主题,所以build时常用的多了一些,今天上Netlify后台一看才发现Build时常已经超过了45分钟,估计账单出来了之后还必须要交完费才能正常访问,各位用Netlify的用户要注意一下这个问题了。
Netlify每个月只有300分钟的Build时常,相较于Github Action的2000分钟,为了避免之后Netlify还出现这种情况,所以研究了一下,看能不能在Github上完成build操作,Netlify只做静态网站运行。
根据这个需求,用ChatGPT简单糊了一个Action配置,目前能用,没什么问题。
配置中需要用到 NETLIFY_AUTH_TOKEN
可以在Netlify后台 Personal access tokens 里获取,NETLIFY_SITE_ID
直接在站点信息里就能看到。
另外,如果想要使用webhook触发Github hook,需要使用 repository_dispatch
来自定义action类型,具体可以参考:触发工作流的事件考。
最后的Action如下。
on:
repository_dispatch:
types:
- update
jobs:
build_deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Set Node.js 20.x
uses: actions/setup-node@master
with:
node-version: 20.x
- name: Run install
uses: borales/actions-yarn@v4
with:
cmd: install # will run `yarn install` command
- name: Build production bundle
uses: borales/actions-yarn@v4
with:
cmd: prod # will run `yarn prod` command
- name: Deploy to Netlify
uses: netlify/actions/cli@master
env:
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
build_directory: dist
with:
args: deploy --prod
这个时候我们就可以通过代码发起POST请求触发Action了。
代码中的 TRIGGER_TOKEN
为前文提到的 去
Github 生成
一个具有 rep 权限的 token(要常规模式的 token,不要问我怎么知道的)
。
curl -X POST https://api.github.com/repos/:owner/:repo/dispatches \
-H "Accept: application/vnd.github.everest-preview+json" \
-H "Authorization: Bearer TRIGGER_TOKEN" \
--data '{"event_type": "TRIGGER_EVENT"}'
结合我们上次提到的 用 GithubAction 替代 Zapier?? 一文,依旧可以通过这个方式来配合Ghost的webhook触发Github Action的webhook。
actionflow的配置文件如下:
on:
webhook:
jobs:
request:
name: Make a HTTP Request
runs-on: ubuntu-latest
steps:
- name: Make a HTTP Request
uses: actionsflow/axios@v1
id: info
with:
url: https://api.github.com/repos/rebron1900/11ty-theme-notability/dispatches
method: POST
headers: '{"Accept":"application/vnd.github.everest-preview+json", "Authorization":"Bearer ${{secrets.ACTION_TOKEN}}"}'
data: '{"event_type": "update"}'
加入评论