GitHub Actions 超时设置
内容提要
GitHub Actions是一个CI/CD工具,允许自动化工作流程。GitHub Pro计划允许用户免费每月运行3000分钟的工作流程。某些用户因工作流程中的无限循环问题而达到免费服务限制。建议为每个工作流程设置超时时间。
延伸解读
默认超时过长带来的风险
GitHub Actions 每个作业的默认超时时间为 6 小时。对于个人用户的轻量任务,这一默认值可能过长。若程序因外部变化陷入无限循环,作业会持续运行直至达到默认超时,从而消耗大量分钟数。文章作者的经历表明,一个日常爬虫任务因目标网站 URL 模式改变而进入无限循环,导致每天消耗约 600 分钟,最终触及免费额度上限。
定位高消耗工作流的方法
GitHub 的 Billing & Plans 页面仅显示当月总使用分钟数,无法区分各工作流的消耗。要获取详细数据,可点击月度使用报告右上角的“Get usage report”按钮。GitHub 会通过邮件发送包含每个工作流使用分钟数的 CSV 文件。通过分析该报告,作者成功找到了消耗过多分钟数的问题工作流。
为作业设置超时的实践
为避免意外使用和费用,建议为工作流中的每个作业设置超时时间。可通过在作业步骤中添加 timeout-minutes 属性来实现。文章示例中,一个修改日期并推送的步骤设置了 timeout-minutes: 2,确保该步骤最多运行 2 分钟。对于运行脆弱或不稳定程序的作业,设置合理的超时时间尤为重要。
Q&A
GitHub Actions的主要功能是什么?
GitHub Actions是一个CI/CD工具,允许用户自动化工作流程。
GitHub Pro计划每月允许多少分钟的免费工作流程?
GitHub Pro计划允许用户每月免费运行3000分钟的工作流程。
如何查看每个工作流程的使用分钟数?
可以通过点击“获取使用报告”按钮来查看每个工作流程的使用分钟数。
为什么某些用户会达到GitHub Actions的免费服务限制?
某些用户因工作流程中的无限循环问题而达到免费服务限制。
如何为GitHub Actions中的每个作业设置超时时间?
可以使用timeout-minutes属性为工作流程中的每个作业设置超时时间。
设置超时时间有什么好处?
设置超时时间可以避免意外的使用和费用,尤其是对于运行不稳定程序的工作流程。