Github 时常因为网络的原因 action 中的脚本执行失败,如何避开这段时间稍后重新执行。
比较简单的方法就是设置两次定时任务。脚本会执行两次,不管有没有成功。
可以用shell脚本,shell脚本和Python搭配是强强联合。
steps:
- name: Run script with retry
run: ./my-script.sh
然后,新建一个my-script.sh文件:
#!/bin/bash
command1 || (sleep 3600 && command1) # 如果command1失败,则等待一小时后再次尝试
#实例
python main.py || (sleep 3600 && python main.py)
如果你只是想要在命令失败后简单地等待一段时间然后重试,使用shell脚本中的|| 操作符和sleep命令通常是最简单和最直接的方法。
Github action 运行bash脚本还有个小问题, Permission denied 。
要解决这个问题,你需要确保my-script.sh脚本具有执行权限。
你需要在工作流脚本中显式地设置文件权限。你可以在工作流文件的相应步骤中使用chmod命令来设置脚本的执行权限,例如:
steps:
- name: Set execution permission
run: chmod +x my-script.sh
- name: Run script
run: ./my-script.sh
Github action 不支持循环,利用bash脚本也可以实现循环功能。
文章评论