From d67cdee06966779baeb24bc2426880bf736f66a4 Mon Sep 17 00:00:00 2001 From: Shinya Maeda Date: Fri, 7 Dec 2018 14:50:54 +0900 Subject: [PATCH 1/4] Documentation for merge request pipelines This is a documentation change about #15310. --- doc/ci/README.md | 1 + .../img/merge_request.png | Bin 0 -> 57512 bytes .../img/pipeline_detail.png | Bin 0 -> 42583 bytes doc/ci/merge_request_pipelines/index.md | 84 ++++++++++ doc/ci/variables/README.md | 151 ++++++++++-------- doc/ci/yaml/README.md | 37 +++-- doc/user/project/merge_requests/index.md | 10 ++ 7 files changed, 204 insertions(+), 79 deletions(-) create mode 100644 doc/ci/merge_request_pipelines/img/merge_request.png create mode 100644 doc/ci/merge_request_pipelines/img/pipeline_detail.png create mode 100644 doc/ci/merge_request_pipelines/index.md diff --git a/doc/ci/README.md b/doc/ci/README.md index 6a68efda33f9bc..a2266762d4c52c 100644 --- a/doc/ci/README.md +++ b/doc/ci/README.md @@ -74,6 +74,7 @@ learn how to leverage its potential even more. - [Caching dependencies](caching/index.md) - [Git submodules](git_submodules.md) - How to run your CI jobs when Git submodules are involved +- [Pipelines for merge requests](merge_request_pipelines/index.md) - [Use SSH keys in your build environment](ssh_keys/README.md) and status of each CI environment running on Kubernetes - [Trigger pipelines through the GitLab API](triggers/README.md) diff --git a/doc/ci/merge_request_pipelines/img/merge_request.png b/doc/ci/merge_request_pipelines/img/merge_request.png new file mode 100644 index 0000000000000000000000000000000000000000..1fe2eec20089e68044ecad9d38399e67e032cceb GIT binary patch literal 57512 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 literal 0 HcmV?d00001 diff --git a/doc/ci/merge_request_pipelines/index.md b/doc/ci/merge_request_pipelines/index.md new file mode 100644 index 00000000000000..6697bf9480f58c --- /dev/null +++ b/doc/ci/merge_request_pipelines/index.md @@ -0,0 +1,84 @@ +# Pipelines for merge requests + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/15310) in GitLab 11.6 + +Usually, when a developer creates a new merge request, a pipeline runs on the +new change and checks if it's qualified to be merged into a target branch. This +pipeline should contain only necessary jobs for checking the new changes. +For example, unit tests, lint checks, and Review Apps are often used in this cycle. + +With pipelines for merge requests, you can design a specific pipeline structure +for merge requests. All you need to do is just adding `only: [merge_requests]` to +the jobs that you want it to run for only merge requests. +Every time, when developers create or update merge requests, a pipeline runs on +their new commits at every push to GitLab. + +NOTE: **Note**: +If you use both this feature and the [Merge When Pipeline Succeeds](../../user/project/merge_requests/merge_when_pipeline_succeeds.md) +feature, pipelines for merge requests take precendence over the other regular pipelines. + +For example, consider a GitLab CI/CD configuration in .gitlab-ci.yml as follows: + +```yaml +build: + stage: build + script: ./build + only: + - branches + - tags + - merge_requests + +test: + stage: test + script: ./test + only: + - merge_requests + +deploy: + stage: deploy + script: ./deploy +``` + +After a developer updated code in a merge request with whatever methods (e.g. `git push`), +GitLab detects that the code is updated and create a new pipeline for the merge request. +The pipeline fetches the latest code from the source branch and run tests against it. +In this example, the pipeline contains only `build` and `test` jobs. +Since `deploy` job does not have the `only: [merge_requests]` rule, +deployment jobs will not happen in the merge request. + +Consider this pipeline list viewed from the **Pipelines** tab in a merge request: + +![Merge request page](img/merge_request.png) + +Note that pipelines tagged as **merge request** indicate that they were triggered +when a merge request was created or updated. + +The same tag is shown on the pipeline's details: + +![Pipeline's details](img/pipeline_detail.png) + +## Important notes about merge requests from forked projects + +Note that the current behavior is subject to change. In the usual contribution +flow, external contributors follow the following steps: + +1. Fork a parent project. +1. Create a merge request from the forked project that targets the `master` branch +in the parent project. +1. A pipeline runs on the merge request. +1. A mainatiner from the parent project checks the pipeline result, and merge +into a target branch if the latest pipeline has passed. + +Currently, those pipelines are created in a **forked** project, not in the +parent project. This means you cannot completely trust the pipeline result, +because, technically, external contributors can disguise their pipeline results +by tweaking their GitLab Runner in the forked project. + +There are multiple reasons about why GitLab doesn't allow those pipelines to be +created in the parent project, but one of the biggest reasons is security. +External users could steal secret variables from the parent project by modifying +.gitlab-ci.yml. + +We're discussing a secure solution about how to run pipelines for merge requests +that submitted from forked projects, +see [the issue about the permission extension](https://gitlab.com/gitlab-org/gitlab-ce/issues/23902). diff --git a/doc/ci/variables/README.md b/doc/ci/variables/README.md index 54fdbda87c211d..0bee96ea051a7d 100644 --- a/doc/ci/variables/README.md +++ b/doc/ci/variables/README.md @@ -40,76 +40,87 @@ Starting with GitLab 9.0, we have deprecated some variables. Read the strongly advised to use the new variables as we will remove the old ones in future GitLab releases.** -| Variable | GitLab | Runner | Description | -|-------------------------------- |--------|--------|-------------| -| **ARTIFACT_DOWNLOAD_ATTEMPTS** | 8.15 | 1.9 | Number of attempts to download artifacts running a job | -| **CHAT_INPUT** | 10.6 | all | Additional arguments passed in the [ChatOps](../chatops/README.md) command **[ULTIMATE]** | -| **CHAT_CHANNEL** | 10.6 | all | Source chat channel which triggered the [ChatOps](../chatops/README.md) command **[ULTIMATE]** | -| **CI** | all | 0.4 | Mark that job is executed in CI environment | -| **CI_COMMIT_REF_NAME** | 9.0 | all | The branch or tag name for which project is built | -| **CI_COMMIT_REF_SLUG** | 9.0 | all | `$CI_COMMIT_REF_NAME` lowercased, shortened to 63 bytes, and with everything except `0-9` and `a-z` replaced with `-`. No leading / trailing `-`. Use in URLs, host names and domain names. | -| **CI_COMMIT_SHA** | 9.0 | all | The commit revision for which project is built | -| **CI_COMMIT_BEFORE_SHA** | 11.2 | all | The previous latest commit present on a branch before a push request. | -| **CI_COMMIT_TAG** | 9.0 | 0.5 | The commit tag name. Present only when building tags. | -| **CI_COMMIT_MESSAGE** | 10.8 | all | The full commit message. | -| **CI_COMMIT_TITLE** | 10.8 | all | The title of the commit - the full first line of the message | -| **CI_COMMIT_DESCRIPTION** | 10.8 | all | The description of the commit: the message without first line, if the title is shorter than 100 characters; full message in other case. | -| **CI_CONFIG_PATH** | 9.4 | 0.5 | The path to CI config file. Defaults to `.gitlab-ci.yml` | -| **CI_DEBUG_TRACE** | all | 1.7 | Whether [debug tracing](#debug-tracing) is enabled | -| **CI_DEPLOY_USER** | 10.8 | all | Authentication username of the [GitLab Deploy Token][gitlab-deploy-token], only present if the Project has one related.| -| **CI_DEPLOY_PASSWORD** | 10.8 | all | Authentication password of the [GitLab Deploy Token][gitlab-deploy-token], only present if the Project has one related.| -| **CI_DISPOSABLE_ENVIRONMENT** | all | 10.1 | Marks that the job is executed in a disposable environment (something that is created only for this job and disposed of/destroyed after the execution - all executors except `shell` and `ssh`). If the environment is disposable, it is set to true, otherwise it is not defined at all. | -| **CI_ENVIRONMENT_NAME** | 8.15 | all | The name of the environment for this job | -| **CI_ENVIRONMENT_SLUG** | 8.15 | all | A simplified version of the environment name, suitable for inclusion in DNS, URLs, Kubernetes labels, etc. | -| **CI_ENVIRONMENT_URL** | 9.3 | all | The URL of the environment for this job | -| **CI_JOB_ID** | 9.0 | all | The unique id of the current job that GitLab CI uses internally | -| **CI_JOB_MANUAL** | 8.12 | all | The flag to indicate that job was manually started | -| **CI_JOB_NAME** | 9.0 | 0.5 | The name of the job as defined in `.gitlab-ci.yml` | -| **CI_JOB_STAGE** | 9.0 | 0.5 | The name of the stage as defined in `.gitlab-ci.yml` | -| **CI_JOB_TOKEN** | 9.0 | 1.2 | Token used for authenticating with [GitLab Container Registry][registry], downloading [dependent repositories][dependent-repositories], authenticate with multi-project pipelines when [triggers][trigger-job-token] are involved, and for [downloading job artifacts][get-job-artifacts] | -| **CI_NODE_INDEX** | 11.5 | all | Index of the job in the job set. If the job is not parallelized, this variable is not set. | -| **CI_NODE_TOTAL** | 11.5 | all | Total number of instances of this job running in parallel. If the job is not parallelized, this variable is set to `1`. | -| **CI_JOB_URL** | 11.1 | 0.5 | Job details URL | -| **CI_REPOSITORY_URL** | 9.0 | all | The URL to clone the Git repository | -| **CI_RUNNER_DESCRIPTION** | 8.10 | 0.5 | The description of the runner as saved in GitLab | -| **CI_RUNNER_ID** | 8.10 | 0.5 | The unique id of runner being used | -| **CI_RUNNER_TAGS** | 8.10 | 0.5 | The defined runner tags | -| **CI_RUNNER_VERSION** | all | 10.6 | GitLab Runner version that is executing the current job | -| **CI_RUNNER_REVISION** | all | 10.6 | GitLab Runner revision that is executing the current job | -| **CI_RUNNER_EXECUTABLE_ARCH** | all | 10.6 | The OS/architecture of the GitLab Runner executable (note that this is not necessarily the same as the environment of the executor) | -| **CI_PIPELINE_ID** | 8.10 | 0.5 | The unique id of the current pipeline that GitLab CI uses internally | -| **CI_PIPELINE_IID** | 11.0 | all | The unique id of the current pipeline scoped to project | -| **CI_PIPELINE_TRIGGERED** | all | all | The flag to indicate that job was [triggered] | -| **CI_PIPELINE_SOURCE** | 10.0 | all | Indicates how the pipeline was triggered. Possible options are: `push`, `web`, `trigger`, `schedule`, `api`, and `pipeline`. For pipelines created before GitLab 9.5, this will show as `unknown` | -| **CI_PROJECT_DIR** | all | all | The full path where the repository is cloned and where the job is run | -| **CI_PROJECT_ID** | all | all | The unique id of the current project that GitLab CI uses internally | -| **CI_PROJECT_NAME** | 8.10 | 0.5 | The project name that is currently being built (actually it is project folder name) | -| **CI_PROJECT_NAMESPACE** | 8.10 | 0.5 | The project namespace (username or groupname) that is currently being built | -| **CI_PROJECT_PATH** | 8.10 | 0.5 | The namespace with project name | -| **CI_PROJECT_PATH_SLUG** | 9.3 | all | `$CI_PROJECT_PATH` lowercased and with everything except `0-9` and `a-z` replaced with `-`. Use in URLs and domain names. | -| **CI_PIPELINE_URL** | 11.1 | 0.5 | Pipeline details URL | -| **CI_PROJECT_URL** | 8.10 | 0.5 | The HTTP address to access project | -| **CI_PROJECT_VISIBILITY** | 10.3 | all | The project visibility (internal, private, public) | -| **CI_REGISTRY** | 8.10 | 0.5 | If the Container Registry is enabled it returns the address of GitLab's Container Registry | -| **CI_REGISTRY_IMAGE** | 8.10 | 0.5 | If the Container Registry is enabled for the project it returns the address of the registry tied to the specific project | -| **CI_REGISTRY_PASSWORD** | 9.0 | all | The password to use to push containers to the GitLab Container Registry | -| **CI_REGISTRY_USER** | 9.0 | all | The username to use to push containers to the GitLab Container Registry | -| **CI_SERVER** | all | all | Mark that job is executed in CI environment | -| **CI_SERVER_NAME** | all | all | The name of CI server that is used to coordinate jobs | -| **CI_SERVER_REVISION** | all | all | GitLab revision that is used to schedule jobs | -| **CI_SERVER_VERSION** | all | all | GitLab version that is used to schedule jobs | -| **CI_SERVER_VERSION_MAJOR** | 11.4 | all | GitLab version major component | -| **CI_SERVER_VERSION_MINOR** | 11.4 | all | GitLab version minor component | -| **CI_SERVER_VERSION_PATCH** | 11.4 | all | GitLab version patch component | -| **CI_SHARED_ENVIRONMENT** | all | 10.1 | Marks that the job is executed in a shared environment (something that is persisted across CI invocations like `shell` or `ssh` executor). If the environment is shared, it is set to true, otherwise it is not defined at all. | -| **GET_SOURCES_ATTEMPTS** | 8.15 | 1.9 | Number of attempts to fetch sources running a job | -| **GITLAB_CI** | all | all | Mark that job is executed in GitLab CI environment | -| **GITLAB_USER_EMAIL** | 8.12 | all | The email of the user who started the job | -| **GITLAB_USER_ID** | 8.12 | all | The id of the user who started the job | -| **GITLAB_USER_LOGIN** | 10.0 | all | The login username of the user who started the job | -| **GITLAB_USER_NAME** | 10.0 | all | The real name of the user who started the job | -| **GITLAB_FEATURES** | 10.6 | all | The comma separated list of licensed features available for your instance and plan | -| **RESTORE_CACHE_ATTEMPTS** | 8.15 | 1.9 | Number of attempts to restore the cache running a job | +| Variable | GitLab | Runner | Description | +|-------------------------------------------|--------|--------|-------------| +| **ARTIFACT_DOWNLOAD_ATTEMPTS** | 8.15 | 1.9 | Number of attempts to download artifacts running a job | +| **CHAT_INPUT** | 10.6 | all | Additional arguments passed in the [ChatOps](../chatops/README.md) command **[ULTIMATE]** | +| **CHAT_CHANNEL** | 10.6 | all | Source chat channel which triggered the [ChatOps](../chatops/README.md) command **[ULTIMATE]** | +| **CI** | all | 0.4 | Mark that job is executed in CI environment | +| **CI_COMMIT_REF_NAME** | 9.0 | all | The branch or tag name for which project is built | +| **CI_COMMIT_REF_SLUG** | 9.0 | all | `$CI_COMMIT_REF_NAME` lowercased, shortened to 63 bytes, and with everything except `0-9` and `a-z` replaced with `-`. No leading / trailing `-`. Use in URLs, host names and domain names. | +| **CI_COMMIT_SHA** | 9.0 | all | The commit revision for which project is built | +| **CI_COMMIT_BEFORE_SHA** | 11.2 | all | The previous latest commit present on a branch before a push request. | +| **CI_COMMIT_TAG** | 9.0 | 0.5 | The commit tag name. Present only when building tags. | +| **CI_COMMIT_MESSAGE** | 10.8 | all | The full commit message. | +| **CI_COMMIT_TITLE** | 10.8 | all | The title of the commit - the full first line of the message | +| **CI_COMMIT_DESCRIPTION** | 10.8 | all | The description of the commit: the message without first line, if the title is shorter than 100 characters; full message in other case. | +| **CI_CONFIG_PATH** | 9.4 | 0.5 | The path to CI config file. Defaults to `.gitlab-ci.yml` | +| **CI_DEBUG_TRACE** | all | 1.7 | Whether [debug tracing](#debug-tracing) is enabled | +| **CI_DEPLOY_USER** | 10.8 | all | Authentication username of the [GitLab Deploy Token][gitlab-deploy-token], only present if the Project has one related.| +| **CI_DEPLOY_PASSWORD** | 10.8 | all | Authentication password of the [GitLab Deploy Token][gitlab-deploy-token], only present if the Project has one related.| +| **CI_DISPOSABLE_ENVIRONMENT** | all | 10.1 | Marks that the job is executed in a disposable environment (something that is created only for this job and disposed of/destroyed after the execution - all executors except `shell` and `ssh`). If the environment is disposable, it is set to true, otherwise it is not defined at all. | +| **CI_ENVIRONMENT_NAME** | 8.15 | all | The name of the environment for this job | +| **CI_ENVIRONMENT_SLUG** | 8.15 | all | A simplified version of the environment name, suitable for inclusion in DNS, URLs, Kubernetes labels, etc. | +| **CI_ENVIRONMENT_URL** | 9.3 | all | The URL of the environment for this job | +| **CI_JOB_ID** | 9.0 | all | The unique id of the current job that GitLab CI uses internally | +| **CI_JOB_MANUAL** | 8.12 | all | The flag to indicate that job was manually started | +| **CI_JOB_NAME** | 9.0 | 0.5 | The name of the job as defined in `.gitlab-ci.yml` | +| **CI_JOB_STAGE** | 9.0 | 0.5 | The name of the stage as defined in `.gitlab-ci.yml` | +| **CI_JOB_TOKEN** | 9.0 | 1.2 | Token used for authenticating with [GitLab Container Registry][registry], downloading [dependent repositories][dependent-repositories], authenticate with multi-project pipelines when [triggers][trigger-job-token] are involved, and for [downloading job artifacts][get-job-artifacts] | +| **CI_MERGE_REQUEST_ID** | 11.6 | all | The ID of the merge request if it's [pipelines for merge requests](../merge_request_pipelines/index.md) | +| **CI_MERGE_REQUEST_IID** | 11.6 | all | The IID of the merge request if it's [pipelines for merge requests](../merge_request_pipelines/index.md) | +| **CI_MERGE_REQUEST_REF_PATH** | 11.6 | all | The ref path of the merge request if it's [pipelines for merge requests](../merge_request_pipelines/index.md). (e.g. `refs/merge-requests/1/head`) | +| **CI_MERGE_REQUEST_PROJECT_ID** | 11.6 | all | The ID of the project of the merge request if it's [pipelines for merge requests](../merge_request_pipelines/index.md) | +| **CI_MERGE_REQUEST_PROJECT_PATH** | 11.6 | all | The path of the project of the merge request if it's [pipelines for merge requests](../merge_request_pipelines/index.md) (e.g. `namespace/awesome-project`) | +| **CI_MERGE_REQUEST_PROJECT_URL** | 11.6 | all | The URL of the project of the merge request if it's [pipelines for merge requests](../merge_request_pipelines/index.md) (e.g. `http://192.168.10.15:3000/namespace/awesome-project`) | +| **CI_MERGE_REQUEST_TARGET_BRANCH_NAME** | 11.6 | all | The target branch name of the merge request if it's [pipelines for merge requests](../merge_request_pipelines/index.md) | +| **CI_MERGE_REQUEST_SOURCE_PROJECT_ID** | 11.6 | all | The ID of the source project of the merge request if it's [pipelines for merge requests](../merge_request_pipelines/index.md) | +| **CI_MERGE_REQUEST_SOURCE_PROJECT_PATH** | 11.6 | all | The path of the source project of the merge request if it's [pipelines for merge requests](../merge_request_pipelines/index.md) | +| **CI_MERGE_REQUEST_SOURCE_PROJECT_URL** | 11.6 | all | The URL of the source project of the merge request if it's [pipelines for merge requests](../merge_request_pipelines/index.md) | +| **CI_MERGE_REQUEST_SOURCE_BRANCH_NAME** | 11.6 | all | The source branch name of the merge request if it's [pipelines for merge requests](../merge_request_pipelines/index.md) | +| **CI_NODE_INDEX** | 11.5 | all | Index of the job in the job set. If the job is not parallelized, this variable is not set. | +| **CI_NODE_TOTAL** | 11.5 | all | Total number of instances of this job running in parallel. If the job is not parallelized, this variable is set to `1`. | +| **CI_JOB_URL** | 11.1 | 0.5 | Job details URL | +| **CI_REPOSITORY_URL** | 9.0 | all | The URL to clone the Git repository | +| **CI_RUNNER_DESCRIPTION** | 8.10 | 0.5 | The description of the runner as saved in GitLab | +| **CI_RUNNER_ID** | 8.10 | 0.5 | The unique id of runner being used | +| **CI_RUNNER_TAGS** | 8.10 | 0.5 | The defined runner tags | +| **CI_RUNNER_VERSION** | all | 10.6 | GitLab Runner version that is executing the current job | +| **CI_RUNNER_REVISION** | all | 10.6 | GitLab Runner revision that is executing the current job | +| **CI_RUNNER_EXECUTABLE_ARCH** | all | 10.6 | The OS/architecture of the GitLab Runner executable (note that this is not necessarily the same as the environment of the executor) | +| **CI_PIPELINE_ID** | 8.10 | 0.5 | The unique id of the current pipeline that GitLab CI uses internally | +| **CI_PIPELINE_IID** | 11.0 | all | The unique id of the current pipeline scoped to project | +| **CI_PIPELINE_TRIGGERED** | all | all | The flag to indicate that job was [triggered] | +| **CI_PIPELINE_SOURCE** | 10.0 | all | Indicates how the pipeline was triggered. Possible options are: `push`, `web`, `trigger`, `schedule`, `api`, and `pipeline`. For pipelines created before GitLab 9.5, this will show as `unknown` | +| **CI_PROJECT_DIR** | all | all | The full path where the repository is cloned and where the job is run | +| **CI_PROJECT_ID** | all | all | The unique id of the current project that GitLab CI uses internally | +| **CI_PROJECT_NAME** | 8.10 | 0.5 | The project name that is currently being built (actually it is project folder name) | +| **CI_PROJECT_NAMESPACE** | 8.10 | 0.5 | The project namespace (username or groupname) that is currently being built | +| **CI_PROJECT_PATH** | 8.10 | 0.5 | The namespace with project name | +| **CI_PROJECT_PATH_SLUG** | 9.3 | all | `$CI_PROJECT_PATH` lowercased and with everything except `0-9` and `a-z` replaced with `-`. Use in URLs and domain names. | +| **CI_PIPELINE_URL** | 11.1 | 0.5 | Pipeline details URL | +| **CI_PROJECT_URL** | 8.10 | 0.5 | The HTTP address to access project | +| **CI_PROJECT_VISIBILITY** | 10.3 | all | The project visibility (internal, private, public) | +| **CI_REGISTRY** | 8.10 | 0.5 | If the Container Registry is enabled it returns the address of GitLab's Container Registry | +| **CI_REGISTRY_IMAGE** | 8.10 | 0.5 | If the Container Registry is enabled for the project it returns the address of the registry tied to the specific project | +| **CI_REGISTRY_PASSWORD** | 9.0 | all | The password to use to push containers to the GitLab Container Registry | +| **CI_REGISTRY_USER** | 9.0 | all | The username to use to push containers to the GitLab Container Registry | +| **CI_SERVER** | all | all | Mark that job is executed in CI environment | +| **CI_SERVER_NAME** | all | all | The name of CI server that is used to coordinate jobs | +| **CI_SERVER_REVISION** | all | all | GitLab revision that is used to schedule jobs | +| **CI_SERVER_VERSION** | all | all | GitLab version that is used to schedule jobs | +| **CI_SERVER_VERSION_MAJOR** | 11.4 | all | GitLab version major component | +| **CI_SERVER_VERSION_MINOR** | 11.4 | all | GitLab version minor component | +| **CI_SERVER_VERSION_PATCH** | 11.4 | all | GitLab version patch component | +| **CI_SHARED_ENVIRONMENT** | all | 10.1 | Marks that the job is executed in a shared environment (something that is persisted across CI invocations like `shell` or `ssh` executor). If the environment is shared, it is set to true, otherwise it is not defined at all. | +| **GET_SOURCES_ATTEMPTS** | 8.15 | 1.9 | Number of attempts to fetch sources running a job | +| **GITLAB_CI** | all | all | Mark that job is executed in GitLab CI environment | +| **GITLAB_USER_EMAIL** | 8.12 | all | The email of the user who started the job | +| **GITLAB_USER_ID** | 8.12 | all | The id of the user who started the job | +| **GITLAB_USER_LOGIN** | 10.0 | all | The login username of the user who started the job | +| **GITLAB_USER_NAME** | 10.0 | all | The real name of the user who started the job | +| **GITLAB_FEATURES** | 10.6 | all | The comma separated list of licensed features available for your instance and plan | +| **RESTORE_CACHE_ATTEMPTS** | 8.15 | 1.9 | Number of attempts to restore the cache running a job | ## GitLab 9.0 renaming diff --git a/doc/ci/yaml/README.md b/doc/ci/yaml/README.md index 080f88a6ed5b32..803f74d4c6a7ca 100644 --- a/doc/ci/yaml/README.md +++ b/doc/ci/yaml/README.md @@ -342,15 +342,16 @@ In addition, `only` and `except` allow the use of special keywords: | **Value** | **Description** | | --------- | ---------------- | -| `branches` | When a branch is pushed. | -| `tags` | When a tag is pushed. | -| `api` | When pipeline has been triggered by a second pipelines API (not triggers API). | -| `external` | When using CI services other than GitLab. | -| `pipelines` | For multi-project triggers, created using the API with `CI_JOB_TOKEN`. | -| `pushes` | Pipeline is triggered by a `git push` by the user. | -| `schedules` | For [scheduled pipelines][schedules]. | -| `triggers` | For pipelines created using a trigger token. | -| `web` | For pipelines created using **Run pipeline** button in GitLab UI (under your project's **Pipelines**). | +| `branches` | When a git reference of a pipeline is a branch. | +| `tags` | When a git reference of a pipeline is a tag. | +| `api` | When pipeline has been triggered by a second pipelines API (not triggers API). | +| `external` | When using CI services other than GitLab. | +| `pipelines` | For multi-project triggers, created using the API with `CI_JOB_TOKEN`. | +| `pushes` | Pipeline is triggered by a `git push` by the user. | +| `schedules` | For [scheduled pipelines][schedules]. | +| `triggers` | For pipelines created using a trigger token. | +| `web` | For pipelines created using **Run pipeline** button in GitLab UI (under your project's **Pipelines**). | +| `merge_requests` | When a merge request is created or updated (See [pipelines for merge requests](../merge_request_pipelines/index.md)). | In the example below, `job` will run only for refs that start with `issue-`, whereas all branches will be skipped: @@ -391,6 +392,24 @@ job: The above example will run `job` for all branches on `gitlab-org/gitlab-ce`, except master. +If a job does not have neither `only` nor `except` rule, +`only: ['branches', 'tags']` is set by default. + +For example, + +```yaml +job: + script: echo 'test' +``` + +is translated to + +```yaml +job: + script: echo 'test' + only: ['branches', 'tags'] +``` + ## `only` and `except` (complex) > `refs` and `kubernetes` policies introduced in GitLab 10.0 diff --git a/doc/user/project/merge_requests/index.md b/doc/user/project/merge_requests/index.md index e27f632776bc35..fe09fe630a2a5f 100644 --- a/doc/user/project/merge_requests/index.md +++ b/doc/user/project/merge_requests/index.md @@ -372,6 +372,16 @@ all your changes will be available to preview by anyone with the Review Apps lin [Read more about Review Apps.](../../../ci/review_apps/index.md) +## Customize a specific pipeline structure for merge requests + +When a developer updates a merge request, a pipeline should quickly report back +its result to the developer, but often pipelines take long time to complete +because general branch pipelines contain unrelated jobs to the merge request. +You can customize a specific pipeline structure for merge requests in order to +speed the cycle up by running only important jobs. + +[Learn more about pipelines for merge requests.](../../../ci/merge_request_pipelines/index.md) + ## Pipeline status in merge requests If you've set up [GitLab CI/CD](../../../ci/README.md) in your project, -- GitLab From 890885ba983de62f76b5a88e5e5b6e5bb1820e43 Mon Sep 17 00:00:00 2001 From: Shinya Maeda Date: Fri, 7 Dec 2018 19:17:47 +0900 Subject: [PATCH 2/4] Improve wording in mr index.md --- doc/user/project/merge_requests/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/user/project/merge_requests/index.md b/doc/user/project/merge_requests/index.md index fe09fe630a2a5f..8c3be08282855c 100644 --- a/doc/user/project/merge_requests/index.md +++ b/doc/user/project/merge_requests/index.md @@ -376,7 +376,7 @@ all your changes will be available to preview by anyone with the Review Apps lin When a developer updates a merge request, a pipeline should quickly report back its result to the developer, but often pipelines take long time to complete -because general branch pipelines contain unrelated jobs to the merge request. +because general branch pipelines contain unnecessary jobs from the merge request standpoint. You can customize a specific pipeline structure for merge requests in order to speed the cycle up by running only important jobs. -- GitLab From e5b766f1f7e733d27ea9f9de3d83b532b3383a25 Mon Sep 17 00:00:00 2001 From: Shinya Maeda Date: Fri, 7 Dec 2018 19:30:54 +0900 Subject: [PATCH 3/4] Small improvement for phrasing --- doc/ci/merge_request_pipelines/index.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/ci/merge_request_pipelines/index.md b/doc/ci/merge_request_pipelines/index.md index 6697bf9480f58c..706e83abf44849 100644 --- a/doc/ci/merge_request_pipelines/index.md +++ b/doc/ci/merge_request_pipelines/index.md @@ -75,10 +75,10 @@ because, technically, external contributors can disguise their pipeline results by tweaking their GitLab Runner in the forked project. There are multiple reasons about why GitLab doesn't allow those pipelines to be -created in the parent project, but one of the biggest reasons is security. +created in the parent project, but one of the biggest reasons is security concern. External users could steal secret variables from the parent project by modifying -.gitlab-ci.yml. +.gitlab-ci.yml, which could be some sort of credentials. This should not happen. -We're discussing a secure solution about how to run pipelines for merge requests +We're discussing a secure solution of running pipelines for merge requests that submitted from forked projects, see [the issue about the permission extension](https://gitlab.com/gitlab-org/gitlab-ce/issues/23902). -- GitLab From a67ff9eebfe4c175cdb10eebcd6686713bebaba4 Mon Sep 17 00:00:00 2001 From: Marcia Ramos Date: Fri, 7 Dec 2018 13:37:06 +0000 Subject: [PATCH 4/4] Consistent feature name in all docs --- doc/user/project/merge_requests/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/user/project/merge_requests/index.md b/doc/user/project/merge_requests/index.md index 8c3be08282855c..d7bed0036bf8c6 100644 --- a/doc/user/project/merge_requests/index.md +++ b/doc/user/project/merge_requests/index.md @@ -372,7 +372,7 @@ all your changes will be available to preview by anyone with the Review Apps lin [Read more about Review Apps.](../../../ci/review_apps/index.md) -## Customize a specific pipeline structure for merge requests +## Pipelines for merge requests When a developer updates a merge request, a pipeline should quickly report back its result to the developer, but often pipelines take long time to complete @@ -380,7 +380,7 @@ because general branch pipelines contain unnecessary jobs from the merge request You can customize a specific pipeline structure for merge requests in order to speed the cycle up by running only important jobs. -[Learn more about pipelines for merge requests.](../../../ci/merge_request_pipelines/index.md) +Learn more about [pipelines for merge requests](../../../ci/merge_request_pipelines/index.md). ## Pipeline status in merge requests -- GitLab