Limit parallel to 100
This prevents some of the abusive behaviors, of someone putting 100000 and creating out of memory condition easily
This commit is contained in:
parent
b3b9817e51
commit
036c9c58ba
3 changed files with 13 additions and 2 deletions
|
@ -1510,7 +1510,7 @@ Possible values for `when` are:
|
||||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22631) in GitLab 11.5.
|
> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22631) in GitLab 11.5.
|
||||||
|
|
||||||
`parallel` allows you to configure how many instances of a job to run in
|
`parallel` allows you to configure how many instances of a job to run in
|
||||||
parallel. This value has to be greater than or equal to two (2).
|
parallel. This value has to be greater than or equal to two (2) and less or equal than 50.
|
||||||
|
|
||||||
This creates N instances of the same job that run in parallel. They're named
|
This creates N instances of the same job that run in parallel. They're named
|
||||||
sequentially from `job_name 1/N` to `job_name N/N`.
|
sequentially from `job_name 1/N` to `job_name N/N`.
|
||||||
|
|
|
@ -27,7 +27,8 @@ module Gitlab
|
||||||
validates :tags, array_of_strings: true
|
validates :tags, array_of_strings: true
|
||||||
validates :allow_failure, boolean: true
|
validates :allow_failure, boolean: true
|
||||||
validates :parallel, numericality: { only_integer: true,
|
validates :parallel, numericality: { only_integer: true,
|
||||||
greater_than_or_equal_to: 2 }
|
greater_than_or_equal_to: 2,
|
||||||
|
less_than_or_equal_to: 50 }
|
||||||
validates :when,
|
validates :when,
|
||||||
inclusion: { in: %w[on_success on_failure always manual delayed],
|
inclusion: { in: %w[on_success on_failure always manual delayed],
|
||||||
message: 'should be on_success, on_failure, ' \
|
message: 'should be on_success, on_failure, ' \
|
||||||
|
|
|
@ -118,6 +118,16 @@ describe Gitlab::Ci::Config::Entry::Job do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'when it is bigger than 50' do
|
||||||
|
let(:config) { { parallel: 51 } }
|
||||||
|
|
||||||
|
it 'returns error about value too high' do
|
||||||
|
expect(entry).not_to be_valid
|
||||||
|
expect(entry.errors)
|
||||||
|
.to include 'job parallel must be less than or equal to 50'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
context 'when it is not an integer' do
|
context 'when it is not an integer' do
|
||||||
let(:config) { { parallel: 1.5 } }
|
let(:config) { { parallel: 1.5 } }
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue