本文档详细介绍了 new-pac 仓库中使用的 GitHub Actions 工作流系统,用于自动化更新域名信息和时间戳。该工作流通过定期更新域名信息而无需手动干预,确保了规避工具的正常运行。
有关此工作流执行的更新脚本的信息,请参见更新脚本。
此仓库中的 GitHub Actions 工作流按计划运行,自动更新主仓库的 README 文件以及包含审查规避工具域名信息的 Wiki 页面。
来源:.github/workflows/update_wiki.yml3-6
工作流在.github/workflows/update_wiki.yml文件中定义,并包含以下关键配置元素
| 配置元素 | 值 | 目的 |
|---|---|---|
| 姓名 | 自动更新 Wiki 和 README | 在 GitHub UI 中标识工作流 |
| 计划 | 每 10 分钟 (*/10 * * * *) | 设置自动执行频率 |
| 手动触发 | workflow_dispatch | 允许在需要时手动执行 |
| 权限 | contents: write | 提供必要的仓库写入权限 |
| 运行器 | ubuntu-latest | 定义执行环境 |
来源:.github/workflows/update_wiki.yml1-14
工作流遵循一系列操作来更新这两个仓库
来源:.github/workflows/update_wiki.yml16-60
工作流首先检出主仓库,其中包含 README.md 文件和更新脚本。
此步骤使用actions/checkout@v3 action 并设置fetch-depth: 0,以确保完整的仓库历史可用。
来源:.github/workflows/update_wiki.yml17-21
接下来,工作流将 wiki 仓库克隆到名为wiki的本地目录中。
此步骤使用自动提供的GITHUB_TOKEN来验证克隆操作。
来源:.github/workflows/update_wiki.yml24-26
工作流设置 Python 环境以运行更新脚本
来源:.github/workflows/update_wiki.yml29-32
安装必要的 Python 包 (pytz)
pytz 包用于更新脚本中的时区处理。
来源:.github/workflows/update_wiki.yml35-36
工作流的核心是执行update_wiki_page.py脚本
此脚本执行实际的内容更新。
来源:.github/workflows/update_wiki.yml39-41
最后一步是将更改提交并推送到两个仓库
来源:.github/workflows/update_wiki.yml44-60
GitHub Actions 工作流与update_wiki_page.py脚本集成,该脚本执行两个关键操作
更新脚本使用正则表达式识别域名模式并增加其数字部分
脚本还会更新时间戳以反映当前的北京时间
来源:update_wiki_page.py10-36 update_wiki_page.py52-55
工作流与两个不同仓库中的文件进行交互
| 问题 | 可能的原因 | 解决方案 |
|---|---|---|
| 工作流运行失败 | 文件未找到 | 确保 Wiki 文件路径正确 |
| 未提交任何更改 | 未检测到差异 | 检查更新脚本中的正则表达式 |
| 权限错误 | Token 问题 | 验证工作流权限设置正确 |
为验证工作流运行正常
如果需要修改工作流
workflow_dispatch) 进行即时测试GitHub Actions 工作流提供了一个可靠的自动化系统,用于保持 new-pac 仓库中的域名信息和时间戳最新。通过每 10 分钟运行一次,它确保用户能够访问最新的规避工具,同时最大限度地减少了手动维护。该工作流通过与更新脚本无缝集成并管理主仓库及其关联 wiki 的更改来实现这一点。