summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Read <eread@gitlab.com>2019-08-30 15:37:23 +1000
committerEvan Read <eread@gitlab.com>2019-09-03 14:38:03 +1000
commitdc83decf5632f522e611e6f6b25efba8821f2f1a (patch)
tree14fb5f01e1bdff312767d516631a08ba1a6486aa
parent4e4fcf79c57f9c6f62b7a1cfbb6a83ee154f05fa (diff)
downloadgitlab-ce-docs/clarify-needs-limits.tar.gz
Clarify limits for needs keyworddocs/clarify-needs-limits
-rw-r--r--doc/ci/yaml/README.md47
1 files changed, 22 insertions, 25 deletions
diff --git a/doc/ci/yaml/README.md b/doc/ci/yaml/README.md
index 06bd9e68a18..4cfa3547267 100644
--- a/doc/ci/yaml/README.md
+++ b/doc/ci/yaml/README.md
@@ -1801,7 +1801,8 @@ and bring back the old behavior.
### `needs`
-> Introduced in GitLab 12.2.
+> - Introduced in GitLab 12.2.
+> - In GitLab 12.3, maximum number of jobs in `needs` array raised from five to 50.
The `needs:` keyword enables executing jobs out-of-order, allowing you to implement
a [directed acyclic graph](../directed_acyclic_graph/index.md) in your `.gitlab-ci.yml`.
@@ -1852,30 +1853,26 @@ This example creates three paths of execution:
#### Requirements and limitations
-1. If `needs:` is set to point to a job that is not instantiated
- because of `only/except` rules or otherwise does not exist, the
- job will fail.
-1. Note that on day one of the launch, we are temporarily limiting the
- maximum number of jobs that a single job can need in the `needs:` array. Track
- our [infrastructure issue](https://gitlab.com/gitlab-com/gl-infra/infrastructure/issues/7541)
- for details on the current limit.
-1. If you use `dependencies:` with `needs:`, it's important that you
- do not mark a job as having a dependency on something that won't
- have been run at the time it needs it. It's better to use both
- keywords in this case so that GitLab handles the ordering appropriately.
-1. It is impossible for now to have `needs: []` (empty needs),
- the job always needs to depend on something, unless this is the job
- in the first stage (see [gitlab-ce#65504](https://gitlab.com/gitlab-org/gitlab-ce/issues/65504)).
-1. If `needs:` refers to a job that is marked as `parallel:`.
- the current job will depend on all parallel jobs created.
-1. `needs:` is similar to `dependencies:` in that it needs to use jobs from
- prior stages, meaning it is impossible to create circular
- dependencies or depend on jobs in the current stage (see [gitlab-ce#65505](https://gitlab.com/gitlab-org/gitlab-ce/issues/65505)).
-1. Related to the above, stages must be explicitly defined for all jobs
- that have the keyword `needs:` or are referred to by one.
-1. For self-managed users, the feature must be turned on using the `ci_dag_support`
- feature flag. The `ci_dag_limit_needs` option, if set, will limit the number of
- jobs that a single job can need to `50`. If unset, the limit is `5`.
+- If `needs:` is set to point to a job that is not instantiated
+ because of `only/except` rules or otherwise does not exist, the
+ pipeline will be created with YAML error.
+- We are temporarily limiting the maximum number of jobs that a single job can
+ need in the `needs:` array:
+ - For GitLab.com, the limit is five. For more information, see our
+ [infrastructure issue](https://gitlab.com/gitlab-com/gl-infra/infrastructure/issues/7541).
+ - For self-managed instances, the limit is:
+ - Five by default (`ci_dag_limit_needs` feature flag is enabled).
+ - 50 if the `ci_dag_limit_needs` feature flag is disabled.
+- It is impossible for now to have `needs: []` (empty needs),
+ the job always needs to depend on something, unless this is the job
+ in the first stage (see [gitlab-ce#65504](https://gitlab.com/gitlab-org/gitlab-ce/issues/65504)).
+- If `needs:` refers to a job that is marked as `parallel:`.
+ the current job will depend on all parallel jobs created.
+- `needs:` is similar to `dependencies:` in that it needs to use jobs from
+ prior stages, meaning it is impossible to create circular
+ dependencies or depend on jobs in the current stage (see [gitlab-ce#65505](https://gitlab.com/gitlab-org/gitlab-ce/issues/65505)).
+- Related to the above, stages must be explicitly defined for all jobs
+ that have the keyword `needs:` or are referred to by one.
### `coverage`