巧妙利用 iOS 的快捷指令配合 GitHub Actions 实现自动化
之前一直在利用 Actions 的 crontab 每一个小时跑一次。但我一直在思考,能不能我只要跑完步就触发,那样可以节省很多资源,还可以跑完就能看到自己新生成的数据。
于是想到了,可以利用捷径啊!我们一般利用 app 记录跑步,如果能用某种手段跑完步,触发 Actions 就可以同步数据,或是完成其它功能了。
这样就不用 crontab 了,只要能利用手机触发就可以了。
那么怎么触发呢?
- 最开始我知道 Actions 能手动触发是来自 @laixintao 的一篇博客 -- 玩了一下 Github 个人首页的 Profile 中的一个回复,原来是可以给 actions 增加手动触发选项的。
- 如果可以手动触发,那么有没有 api 呢?搜索了下 GitHub API 文档,并没有发现这个。尝试搜索了一下 GitHub 嗯,在某个项目下发现某个人做过类似的想法。好了,api 有了。试试能不能触发。
- 首先在 yml 文件中增加
workflow_dispatch:
可以手动触发 - 先拿到这个项目的 actions id (需要自行申请 token)
curl https://api.github.com/repos/yihong0618/blog/actions/workflows -H "Authorization: token d8xxxxxxxxxx" # change to your config
- 拿到 action id 就可以利用 api post 触发 action 啦
curl -H "Content-Type:application/json" -X POST -d '{"inputs": {}, "ref":"master"}' https://api.github.com/repos/yihong0618/blog/actions/workflows/: actionid/dispatches -H "Authorization: token d8e03d6xxxxxxxxxxxx" # change to your config
那么怎么结合捷径呢?
- 捷径打开或关闭 app 运行,那么,跑完步一般会关闭 app, 只要关闭 app 触发就可以
- 增加捷径中的网络请求条件
- 填写你之前获取到的 url 和 payload (触发捷径的api)
- 你跑完步关闭跑步 app 时候就可以触发这个捷径了。之后就可以把原来 crontab 的一小时一次,改成一天一次了。
还可以做什么呢?
- 利用 shanbay_remember 扇贝背完今日单词,关闭 app 时触发捷径自动发送今日的单词 mp3 和单词整理到 tg
- 利用地理位置或 wifi 触发,到公司自动发送每日 GitHub status
- 可以利用一个 action 触发另一个项目的 action,实现另一个 repo 的更新
- 利用关闭闹钟同步自己起床记录
- ..........欢迎大家想到好玩的补充
- 记录展示自己的心跳 -- iBeats
另外
- 目前主分支可能是 main 而不是 master
- 可能需要 inputs 请按下图配置
- yml 中的 inputs 也可以按下图配置