如果您发现自己需要定期重建一个Netlify应用程序,Github行动可能适合您。这假定你已经集成了Github和Netlify,并且你的网站已经从Github上建立。
使其发挥作用的一般步骤是。
- 在我们的资源库中创建一个Github动作
- 在我们的Action yaml文件中使用
schedule字段,以类似于cron的时间表来运行动作。 - 在行动中,向我们从Netlify获得的构建钩子URL发送POST请求。
让我们来看看如何设置这一切。
创建动作
在我们的Github资源库中,任何行动都会放在.github/workflows 目录中。让我们把代码放在该目录下的一个main.yml 文件中。
/.github/workflows/main.yml
name: Schedule Netlify Build
on:
workflow_dispatch:
schedule:
- cron: '0 14 * * *' # Once a day around 10am ET
jobs:
build:
name: Request Netlify Webhook
runs-on: ubuntu-latest
steps:
- name: POST to Build Hook
env:
BUILD_KEY: ${{ secrets.NETLIFY_BUILD_KEY }}
run: curl -X POST -d {} https://api.netlify.com/build_hooks/$env:BUILD_KEY
我们将我们的行动命名为 "Schedule Netlify Build",并告诉它在两个条件下触发。"workflow_dispatch",这将允许我们从Github用户界面手动触发该动作,更重要的是,"schedule",这将告诉Github在类似cron的时间表上运行该动作。
在这个例子中,我们每天在UTC的第14个小时运行我们的cron工作。
我们的cron job将执行一个curl POST请求到https://api.netlify.com/build_hooks/$env:BUILD_KEY 。注意,我们在这个URL中的$env:BUILD_KEY --我们不想把构建密钥直接放在我们的代码中,因为它很敏感。相反,我们将把它存储在Github Secrets中,作为NETLIFY_BUILD_KEY 。
现在这一切都已经完成了!我们可以把它推送到我们的Github仓库。如果我们立即进行测试,就会失败,因为我们还需要从Netlify获得构建密钥并将其保存到Github Secrets。
获取Netlify的构建密钥
在Netlify中,你可以按照以下的一般导航路径来获得构建钩子区域。
- 点击你的网站
- 点击网站设置
- 点击构建和部署
- 在这个页面上应该有一个Build hooks部分
在构建钩子部分,你应该可以点击添加构建钩子。你可以选择给你的钩子命名(任何东西都可以,也许可以用 "Scheduled github action build"),你可以选择哪个分支来构建。
一旦你点击保存,你应该看到一个构建钩子链接,看起来像这样。
https://api.netlify.com/build_hooks/some-random-string
你要复制这个URL末尾的随机字符串--这就是将进入Github Secrets的内容。
将构建密钥添加到Github Secrets中
在Github中,导航到设置,然后是秘密。在那里,你应该看到一个新仓库秘密的按钮。
当添加你的秘密时,一定要把它命名为NETLIFY_BUILD_KEY ,并且只把你的密钥的随机字符串部分放入框中。
测试我们的行动
测试我们行动的一个方法是等到明天上午10点,但这似乎是一个漫长的等待。相反,我们确保给自己一个选项来手动触发我们的Github行动,所以让我们试一试。
点击行动,在左边的菜单中点击你的行动,点击运行工作流下拉菜单,然后点击运行工作流。
你应该能够从这里看到你的构建成功完成。我也建议在Netlify方面确认你的网站被重建。