Frost's Blog
355 字
2 分钟
我是如何摸鱼的

可能是我之前 star 过几个 GitHub Profile 项目,现在我 GitHub 首页右侧推荐总是时不时有类似的 Repo 出现。

有一类 Profile 比较特殊,它们有社区互动模块,比如:

受之启发,我也花 mo 了 yu 半天时间撸了一个五子棋游戏放在我的 Profile 中。现在棋盘只有 9×9,高手对决可能无法分胜负,但已经留了空间能灵活改变。

image-20201119105305918

简单说下这些带互动部分的 Profile 的实现原理吧。其实都是依靠强大的 GitHub Actions。

  1. 用户点击棋盘上的空白,提交一个 issue,包含预设的标题、内容和 label,这些信息全都能放在一个 URL 里,非常方便。

  2. Issue 提交后,会触发一个 GitHub Action,运行脚本,读取 Issue 的标题,取出要进行的动作,改变棋盘。这个 action 的触发器是这样的:

    on:
      issues:
        types: [opened]
    
    jobs:
      move:
        runs-on: ubuntu-latest
        if: startsWith(github.event.issue.title, 'gomoku|')
    
  3. 将此动作的元数据和游戏统计信息写到 Repo 中,重新生成 README,提交、push。Push 信息中带上Close #<issue_num>把 Issue 关掉。

总得来说 GitHub Actions 还是挺好玩的,自从这个功能开放以来,各种骚操作层出不穷。特别是 Travis CI 开始掉链子,大家纷纷转向 GitHub Actions。怎样,来我主页下个棋吧?

我是如何摸鱼的
https://frostming.com/2020/11-19/github-action-game/
作者
Frost Ming
发布于
2020-11-19
许可协议
CC BY-NC-SA 4.0