You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 08:35:04