GitHub Actions流水线运行10分钟后超时终止问题求助
GitHub Actions 10分钟超时问题排查与解决
问题核心
你的流水线运行满10分钟就触发Run Command Timeout错误,但重试往往能在10分钟内完成。你已经配置了job级别的timeout-minutes: 100却无效——这说明超时限制不是来自job本身,而是你使用的SSH类Action自带默认10分钟超时。
具体解决步骤
1. 给easingthemes/ssh-deploy添加超时配置
该Action默认超时时间为10分钟,需通过环境变量TIMEOUT(单位秒)手动设置更长时长:
- name: Deploy to main server uses: easingthemes/ssh-deploy@main env: SSH_PRIVATE_KEY: ${{ secrets.EC2_SSH_KEY_DEV }} REMOTE_HOST: ${{ secrets.HOST_DNS_DEV }} REMOTE_USER: ${{ secrets.USERNAME_DEV }} TARGET: ${{ secrets.TARGET_DIR_DEV }}/web TIMEOUT: 3600 # 设置为60分钟,可按需调整
2. 给appleboy/ssh-action添加超时参数
该Action默认超时为600秒(10分钟),需在with字段中显式设置timeout参数(单位秒):
- name: Executing remote ssh commands using ssh key uses: appleboy/ssh-action@master with: host: ${{ secrets.HOST_DNS_DEV }} username: ${{ secrets.USERNAME_DEV }} key: ${{ secrets.EC2_SSH_KEY_DEV }} timeout: 3600 # 设置为60分钟,可按需调整 script: | sudo apt -y update sudo apt-get install -y python3 python3-pip python3-venv export PYTHON=$(which python3) yarn install cd ${{ secrets.TARGET_DIR_DEV }} cp ./server/docker-compose.prod.yml -f . sudo docker compose -f docker-compose.prod.yml up frontend -d --build sudo docker system prune -a -f
3. 优化远程脚本执行效率
超时的根源可能是远程任务偶尔执行过慢,建议做以下优化:
- 避免重复执行依赖安装:先检查依赖是否存在,比如用
dpkg -l | grep python3 || sudo apt-get install -y python3... - 加速
yarn install:使用yarn install --frozen-lockfile,或在远程目录配置yarn缓存 - 启用Docker构建缓存:确保
docker compose up --build时复用已有镜像层,避免全量构建
4. 检查远程服务器资源
偶尔超时可能是远程服务器CPU、内存不足导致任务卡顿。可在流水线中添加资源监控命令,或查看服务器系统日志,确认任务运行时的资源占用情况。
内容的提问来源于stack exchange,提问作者Shiny Loot
相关产品推荐
相关产品推荐

