GitLab CI Pipeline Stage Timeout
Solution 1:
You can set a global timeout in "Project settings -> CI/CD Pipelines -> Timeout" or "Project settings -> Builds -> Timeout" in older versions.
As of version 12.3, you can set a timeout per stage in your CI .yml file using timeout
:
timeout
allows you to configure a timeout for a specific job. For example:
build:
script: build.sh
timeout: 3 hours 30 minutes
test:
script: rspec
timeout: 3h 30m
The job-level timeout can exceed the project-level timeout but can’t exceed the Runner-specific timeout.
Solution 2:
There are two timeout can be set: project timeout and runner timeout.
Project timeout:
It is possible to set timeout per job from Settings -> CI/CD -> General pipelines
Runner timeout:
runner's timeout can be set from Settings -> CI/CD -> Runners, select the runner from Runners activated for this project and edit the Maximum job timeout from the runner edit form.
Be aware that these two types of timeout can be overridden by each other. Refer the docs.
Solution 3:
A job-specific timeout was introduced in 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