商汇粹外网资源平台

搜索
查看: 1435|回复: 2

如何优雅地使用 Github Actions?

[复制链接]

该用户从未签到

13

主题

120

帖子

398

积分

中级会员

Rank: 3Rank: 3

积分
398
发表于 2022-9-22 06:00:27 | 显示全部楼层 |阅读模式
秀出各种自动化部署的骚操作吧
回复

使用道具 举报

该用户从未签到

4

主题

34

帖子

138

积分

注册会员

Rank: 2

积分
138
发表于 2022-9-22 12:15:27 | 显示全部楼层
自动化部署再骚能骚到哪儿去,我从几年前写自动化开始,用过Aone(懂的都懂这是个什么玩意),Jenkinsfile, TeamCity Kotlin DSL, travis, appveyor, circleci... 用多了会发现没什么新鲜的,也就那么回事。
我来介绍一个骚操作,用GitHub Actions当OJ,给编程游戏服务器判题。

看到主角身边那堆尸骨了么,那原来是个大魔王,被我用GitHub actions打死的。我们可以再打它一次。

拖到最下面有个魔改的VSCode网页版,我们的目标是把这个简单的bug修掉(还没看出来问题的话可能需要去换个钛合金狗眼)。

把bug改掉,点提交按钮。

实现一个通用的OJ太麻烦了,直接用GitHub Actions,方便量大还免费。当提交代码的时候,后端服务器调用GitHub API,把你写的代码push到GitHub上,触发一个GitHub workflow。然后我们把实时日志流转发回前端(这部分没有public API,我hack了一个GitHub的私有API):

通过之后这个大魔王就被你打死了。你当然可以直接打开对应的PR、commit、workflow在GitHub上的页面,都是开源的。
你要想自己体验一下这个骚操作的话,在这里,用GitHub账号登录,不用注册,不用扫二维码关注微信公众号回复XX,我个人十分反感那种放一堆截图最后一句“限于篇幅关注公众号获取全部内容”的账号。
回复

使用道具 举报

该用户从未签到

9

主题

43

帖子

139

积分

注册会员

Rank: 2

积分
139
发表于 2022-9-22 18:30:27 | 显示全部楼层



‍‍题图:来自 Unsplash


本文首发于我的账号「效率工具指南

文/彭宏豪




‍Hello 大家好,我是小豪。


今天想和各位分享一个有意思的小项目——用快捷指令 App 和 GitHub,自动记录每天的起床时间。
这个项目源于之前介绍过的 running_page 作者 @yihong0618  的另外一个项目「早起记录」,它可以实现的效果如下:
每天起床关闭闹钟后,触发快捷指令 App 运行程序,在 GitHub issue 下面会生成一段话,包含今天的气温、起床时间(具体到秒)、随机的一句诗





我觉得这个小项目挺有意思的,不仅可以记录每天起床的时间,还能体会到自动化程序在我们日常生活中的应用。
在项目作者 @yihong0618  老师的指导下,我也顺利了弄出了相同的程序,从此就可以记录我这只懒猪 的起床时间啦:





原作者 @yihong0618 项目地址:https://github.com/yihong0618/2021/blob/main/get_up.py
我的起床时间项目地址:https://github.com/phh95/get_up
下面是实现自动记录起床时间的过程:
创建一个 GitHub 仓库

在 GitHub 上创建一个仓库,名字可以随意取,这里我将仓库取名为 get_up。





复制代码

从我的 get_up 仓库中复制 3 个文件,分别是:

  • .github/workflows 路径下的 get_up.yml 文件



  • get_up.py 文件
  • requirements.txt 文件





修改代码

打开复制的 get_up.py 文件,定位到第 11 行代码,你可以修改中间的「懒猪 起床啦,赶紧去跑步,上班不迟到。」,这里的语句,决定了最终在 issue 中生成的内容,你可以将它改为你喜欢的内容。





定位到第 50 行代码,如果你每天起床的时间早于 6 点,那就需要将 6 更改为更小的数字,例如 4 或 5,这样程序才会正常运行。





创建 issue

点击切换到 issues 选项卡,接着点击页面右侧的绿色按钮 New issue,创建一个 issue。





创建 issue 时,需要填入 issue 标题和内容,填入的内容可参考下图 :





获取 Token

首先打开网页 https://github.com/settings/tokens,点击右上角的 Generate new token,生成一个新的 Token。





生成 Token 时,有两个注意点,将 Token 的有效期 Expiration 设置为 No expiration(长期有效),勾选下面的所有复选框,将所有权限都打开。





生成的 Token,是一长串英文和数字混合的字符串,点击右侧的复制按钮,复制到剪贴板。
注意:这个 Token 后面还要用到,最好将 Token 保存到本地的 txt 或 word 文件中。
打开仓库的 Settings 页面,左侧切换到 Secrets 选项卡,点击右上角的 New repository secret





在打开的页面中,Name 输入 G_T,Value 粘贴刚复制到剪贴板的 Token。





获取 GitHub Actions ID

打开电脑的终端(Windows 系统上叫做cmd 或者 Powershell),在终端中粘贴下方的语句。
curl https://api.github.com/repos/替换成你的GitHubId/这里替换成GitHub仓库名称/actions/workflows -H "Authorization: token 这里的中文替换成GitHub仓库的Token"
粘贴之前,这个语句有 3 处需要替换:

  • 你的 GitHub ID



  • 你的 GitHub 仓库名称
  • 你在前面操作中获得的 Token
粘贴修改好的语句,按下 Enter 键,下方会返回 ID,这个 ID 会复制到本地的 txt 或者 word 中,等下会用到。





在手机上添加快捷指令

前面说到,让程序自动运行的触发条件是,关闭手机闹钟。
因此,我们还需要在手机上进行配置,如果你的手机是 iPhone,可以使用快捷指令 App,如果是安卓手机,可以使用 tasker。
关于 tasker 的配置,可以参考下面的文章:
https://chenzaichun.github.io/post/2021-09-21-github-action-trigger-by-curl-tasker/
下面介绍 iPhone 上快捷指令 App 的配置:
在 Safari 浏览器打开下面的快捷指令
➡️ 快捷指令链接:https://www.icloud.com/shortcuts/703420fd5f2247a089a849f7849282c5
添加快捷指令「早起时间 分享版」后,点击快捷指令右上角的三个小点点,进入快捷指令的配置页面。
我们需要配置 4 个值:



  • GitHub_Name:填入你的 GitHub ID
  • Rep_Name:填入你创建的仓库名
  • GitHub_Token:填入前面获取的 Token
  • Action_ID:填入前面从终端获得的 ID


配置好 4 个参数后,回到「所有快捷指令」的页面,点击快捷指令「早起时间 分享版」,程序就会自动运行。





稍等一小会,回到 GitHub 仓库的 issue 选项卡,在评论区就能见到程序运行后的结果。
如果想让快捷指令在每次关闭闹钟后自动运行,可以切换到快捷指令的「自动化」页面,研究刚添加的快捷指令,在自动化里面创建一个同样的命令。





以上,就是本次想和你分享的内容。
如果对你也有帮助的话,别忘了点击下方的点赞、在看分享按钮,你的小小支持,是我持续更新的最大动力,我们下次再见。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表