【问题标题】:GitLab CI Pipeline Stage TimeoutGitLab CI 管道阶段超时
【发布时间】:2016-11-19 02:39:41
【问题描述】:

我正在使用自托管GitLab CI server(社区版v8.9.5)和gitlab-ci-multi-runner1.2.0 来构建项目。我的一个管道阶段(测试)需要一段时间才能运行,我得到以下 erm:

ERROR: Build failed: execution took longer than 3600 seconds

我应该把这个超时的覆盖放在哪里?我可以将其仅应用于测试管道阶段吗?

【问题讨论】:

    标签: timeout gitlab-ci


    【解决方案1】:

    您可以在 “项目设置 -> CI/CD 管道 -> 超时”“项目设置 -> 构建 -> 超时” 中设置全局超时版本。

    从 12.3 版开始,您可以使用 timeout 在 CI .yml 文件中设置每个阶段的超时时间:

    timeout 允许您为特定作业配置超时。例如:

    build:
      script: build.sh
      timeout: 3 hours 30 minutes
    
    test:
      script: rspec
      timeout: 3h 30m
    

    作业级超时可以超过项目级超时,但不能超过 Runner 特定超时。

    【讨论】:

    • 至少从 8.11.5 开始,此设置可以在 Project settings -> CI/CD Pipeline -> Timeout 中找到
    • 本地运行gitlab-runner时可以设置超时时间吗?
    • @damian 我会说跑步者在哪里跑步无关紧要,但不要相信我的话。
    【解决方案2】:

    可以设置两种超时时间:project timeoutrunner timeout

    项目超时:

    可以通过设置 -> CI/CD -> 常规管道

    设置每个作业的超时时间

    跑步者超时:

    runner的超时时间可以从Settings -> CI/CD -> Runners中设置,从Runners激活的选择runners这个项目并从运行器编辑表单中编辑最大作业超时

    请注意,这两种类型的超时可以相互覆盖。参考docs

    【讨论】:

    • 如果我在本地运行它,我会收到此错误。 ERROR: Job failed: execution took longer than 30m0s seconds FATAL: execution took longer than 30m0s seconds 。我已经在 toml 文件中设置了 1 小时的 timwout。让我知道可能是什么问题
    • 也许同时检查项目超时和运行超时? @shaktisinghmoyal
    • 我尝试了项目超时和跑步者超时。但是在本地运行时,gitlab 方面有很多限制。为我解决的解决方案是,如果您在本地运行,则使用命令gitlab-runner exec docker job_name --timeout 3600 使用类似这样的参数传递运行器超时
    【解决方案3】:

    Gitlab 12.3 中引入了特定于作业的超时

    https://docs.gitlab.com/ce/ci/yaml/README.html#timeout

    build:
      script: build.sh
      timeout: 3 hours 30 minutes
    
    test:
      script: rspec
      timeout: 3h 30m
    

    【讨论】:

    • 如果我在本地运行它会收到此错误。 ERROR: Job failed: execution took longer than 30m0s seconds FATAL: execution took longer than 30m0s seconds 。我已经在 toml 文件中设置了 1 小时的 timwout。让我知道可能是什么问题
    • @shaktisinghmoyal 我想你现在已经想通了,但是还有一个项目最大超时和一个 gitlab 运行器最大超时需要由 gitlab 管理员配置。
    【解决方案4】:

    如果在 Gitlab 上运行它,那么上述答案已经告诉了正确的方法。但是,如果您也想在本地运行 Gitlab CI 并使用自己的跑步者,那么跑步者超时,您需要使用命令传递。

    gitlab-runner exec docker job_name --timeout 3600

    这里将跑步者超时设置为 3600 秒

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-26
      • 2019-09-21
      • 1970-01-01
      • 2022-01-11
      • 1970-01-01
      • 2022-01-19
      • 2017-10-06
      • 2020-12-13
      相关资源
      最近更新 更多