Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'doc/development/pipelines/index.md')
-rw-r--r--doc/development/pipelines/index.md43
1 files changed, 27 insertions, 16 deletions
diff --git a/doc/development/pipelines/index.md b/doc/development/pipelines/index.md
index 91f4ae702ac..cdfc2c95c18 100644
--- a/doc/development/pipelines/index.md
+++ b/doc/development/pipelines/index.md
@@ -286,36 +286,47 @@ If you want to force a Review App to be deployed regardless of your changes, you
Consult the [Review Apps](../testing_guide/review_apps.md) dedicated page for more information.
-### As-if-FOSS jobs
+### As-if-FOSS jobs and cross project downstream pipeline
-The `* as-if-foss` jobs run the GitLab test suite "as if FOSS", meaning as if the jobs would run in the context
-of `gitlab-org/gitlab-foss`. These jobs are only created in the following cases:
+To ensure the relevant changes are working properly in the FOSS project,
+under some conditions we also run:
-- when the `pipeline:run-as-if-foss` label is set on the merge request
-- when the merge request is created in the `gitlab-org/security/gitlab` project
-- when any CI configuration file is changed (for example, `.gitlab-ci.yml` or `.gitlab/ci/**/*`)
+- `* as-if-foss` jobs in the same pipeline
+- Cross project downstream FOSS pipeline
-The `* as-if-foss` jobs are run in addition to the regular EE-context jobs. They have the `FOSS_ONLY='1'` variable
-set and get the `ee/` folder removed before the tests start running.
+The `* as-if-foss` jobs run the GitLab test suite "as if FOSS", meaning as if
+the jobs would run in the context of `gitlab-org/gitlab-foss`. On the other
+hand, cross project downstream FOSS pipeline actually runs inside the FOSS
+project, which should be even closer to an actual FOSS environment.
-The intent is to ensure that a change doesn't introduce a failure after `gitlab-org/gitlab` is synced to `gitlab-org/gitlab-foss`.
+We run them in the following cases:
-#### As-if-FOSS cross project downstream pipeline
+- when the `pipeline:run-as-if-foss` label is set on the merge request
+- when the merge request is created in the `gitlab-org/security/gitlab` project
+- when CI configuration file is changed (for example, `.gitlab-ci.yml` or `.gitlab/ci/**/*`)
-As an alternative to the `* as-if-foss` jobs, we can also run a cross project
-FOSS pipeline exactly in the `gitlab-org/gitlab-foss` project. We trigger it
-in the following cases:
+The `* as-if-foss` jobs are run in addition to the regular EE-context jobs.
+They have the `FOSS_ONLY='1'` variable set and get the `ee/` folder removed
+before the tests start running.
-- when the `pipeline:run-as-if-foss-cross-project` label is set on the merge request
+Cross project downstream FOSS pipeline simulates merging the merge request
+into the default branch in the FOSS project instead, which removes a list of
+files. The list can be found in
+[`.gitlab/ci/as-if-foss.gitlab-ci.yml`](https://gitlab.com/gitlab-org/gitlab/-/blob/215d1e27d74cbebaa787d35bf7dcabc5c34ebf86/.gitlab/ci/as-if-foss.gitlab-ci.yml#L22-30)
+and in
+[`merge-train/bin/merge-train`](https://gitlab.com/gitlab-org/merge-train/-/blob/041d942ae1b5615703b7a786982340b61620e7c5/bin/merge-train#L228-239).
-This is still working-in-progress to replace the `* as-if-foss` jobs. The
-goal is to simplify pipeline rules and make it more clear about the intention.
+The intent is to ensure that a change doesn't introduce a failure after
+`gitlab-org/gitlab` is synced to `gitlab-org/gitlab-foss`.
##### Tokens set in the project variables
- `AS_IF_FOSS_TOKEN`: This is a [GitLab FOSS](https://gitlab.com/gitlab-org/gitlab-foss)
project token with `developer` role and `write_repository` permission,
to push generated `as-if-foss/*` branch.
+ - Note that the same name for the security project should use another token
+ from the security FOSS project, so that we never push security changes to
+ a public project.
### As-if-JH cross project downstream pipeline