为什么需要通过快捷指令实现自动化
- 最初的 Github Actions 需要 crontab 来定时进行自动化,这样做不仅消耗过多资源,而且在完成某个任务时不会立即获取新生成的数据。
- 如果我可以完成某个特定动作,例如关闭闹钟、充电、关闭 APP 时自动进行 Actions时,这样做非常高效,方法是可以利用快捷指令触发 Actions 同步数据
- 下面拿跑步举例,一般会用 app(我用的是 keep)来记录跑步数据,实现的操作是当关闭 keep 时会自动进行 Actions,更新数据
如何触发 Actions
首先在 yml 文件中增加
workflow_dispatch
: 可以手动触发先拿到这个项目的 actions id (需要自行申请 token)
在个人的 settings 中申请 项目的token,然后在项目里的 Secrets and variables 里的 Actions 设置密钥,内容为刚刚申请的 token
执行下面代码获取 actionid
1
curl https://api.github.com/repos/jujimeizuo/running_page/actions/workflows -H "Authorization: token d8xxxxxxxxxx" ## change to your config
拿到 action id 就可以利用 api post 触发 action 啦
1
curl -H "Content-Type:application/json" -X POST -d '{"inputs": {}, "ref":"master"}' https://api.github.com/repos/jujimeizu/running_page/actions/workflows/: ${actionid}/dispatches -H "Authorization: token d8e03d6xxxxxxxxxxxx" ## change to your config
结合快捷指令
快捷指令
- 通过 icloud 获取 running-page-template
- 修改下面图片中字典的值即可
自动化
其他
- 可以通过关闭闹钟来同步自己的起床记录——这也是 yihong 大神写的
- 可以利用一个 action 触发另一个项目的 action,实现另一个 repo 的更新
- …
Reference
本文作者:jujimeizuo
本文地址: https://blog.jujimeizuo.cn/2023/10/06/shortcut-github-actions-automation/
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0 协议。转载请注明出处!