GitHub Action概览¶
Info
作者:Vincent,发布于2021-11-13,阅读时间:约2分钟,微信公众号文章链接:
1 前言¶
我们之前介绍了很多GitHub的酷炫功能,为了方便理解这篇文章的内容,建议阅读之前的文章回顾基本的GitHub操作知识:
在这篇文章里,我们将介绍如何使用GitHub Action,简化重复机械的工作,以大大提高效率、节省时间。
2 GitHub Action概览¶
GitHub Action可以自动执行自定义的脚本完成预先设定的工作。用户需要设置触发条件(事件)及条件满足时的命令,GitHub就可以自动完成预设的操作,例如当有更新合并到master/main分支时,自动执行测试脚本检查错误。下图展示了GitHub Action执行时的组件:
事件发生时,GitHub自动触发工作流。然后程序按步骤执行。
3 创建Action¶
GitHub Action使用YAML定义触发的事件、工作和步骤,工作流文件需要存放在代码仓库中的特定位置:.github/workflows
。
name: ci
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: 3.x
- run: python ./docs/Scripts/Update_reading_time.py
- run: pip install mkdocs-material
- run: pip install mkdocs-redirects
- run: pip install mkdocs-minify-plugin
- run: pip install mkdocs-macros-plugin
- run: pip install mkdocs-git-revision-date-localized-plugin
- run: pip install --upgrade mkdocs-material
- run: pip install --upgrade mkdocs-redirects
- run: pip install --upgrade mkdocs-minify-plugin
- run: pip install --upgrade mkdocs-macros-plugin
- run: pip install --upgrade mkdocs-git-revision-date-localized-plugin
- run: git pull
- run: mkdocs gh-deploy --force
要点如下:
name
定义了工作流的名称,此处为持续集成(Continous Integration, CI)。on
为触发工作流的事件,此处定义为更新推送到main分支时需要执行命令。jobs
里定义了工作任务,deploy为工作的名称,在GitHub的Ubuntu Linux虚拟机上运行一系列步骤。uses
后接GitHub Action集市里的action。此处使用了action来check out仓库并将代码下载到运行代码的服务器上,同时配置Python运行环境。run
后接要执行的命令,此处安装了一些博客依赖的Python包并且运行部署命令。
4 查看Action运行状态¶
在GitHub仓库的Actions标签中,可看到action运行状态:
可以见到BulletTech使用的ci工作流,点击runs可以查看action每一步的运行状态。
5 总结¶
使用GitHub Action自动化了许多重复机械的劳动,节约出来的时间可用于更有意义的事情,更多的内容可自行查看下列参考资料定制适合自己的工作流。
希望这次的分享对你有帮助,欢迎在评论区留言讨论!
Viewed times