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/ci/components/index.md')
-rw-r--r--doc/ci/components/index.md25
1 files changed, 17 insertions, 8 deletions
diff --git a/doc/ci/components/index.md b/doc/ci/components/index.md
index e73436522dc..a3d6d7224e4 100644
--- a/doc/ci/components/index.md
+++ b/doc/ci/components/index.md
@@ -13,20 +13,29 @@ info: To determine the technical writer assigned to the Stage/Group associated w
This feature is an experimental feature and [an epic exists](https://gitlab.com/groups/gitlab-org/-/epics/9897)
to track future work. Tell us about your use case by leaving comments in the epic.
+A CI/CD component is a reusable single pipeline configuration unit. Use them to compose an entire pipeline configuration or a small part of a larger pipeline.
+
+A component can optionally take [input parameters](../yaml/inputs.md).
+
+CI/CD components are similar to the other kinds of [configuration added with the `include` keyword](../yaml/includes.md), but have several advantages:
+
+- Components can be released and used with a specific version.
+- Multiple components can be combined in the same project and released with a single tag.
+- Components are discoverable in the [CI/CD Catalog](catalog.md).
+
## Components repository
-A components repository is a GitLab project with a repository that hosts one or more pipeline components.
-A pipeline component is a reusable single pipeline configuration unit. Use them to compose
-an entire pipeline configuration or a small part of a larger pipeline.
+A components repository is a GitLab project with a repository that hosts one or more pipeline components. All components in the project are versioned and released together.
-A component can optionally take [input parameters](../yaml/inputs.md).
+If a component requires different versioning from other components, the component should be migrated to its own components repository.
## Create a components repository
To create a components repository, you must:
1. [Create a new project](../../user/project/index.md#create-a-blank-project) with a `README.md` file.
-1. Create a `template.yml` file inside the project's root directory that contains the configuration you want to provide as a component.
+1. Add a YAML configuration file for each component, following the [required directory structure](#directory-structure).
+
For example:
```yaml
@@ -98,8 +107,8 @@ For example, the following component could be referenced with `gitlab.com/my-use
#### Component configurations saved in any directory (deprecated)
-NOTE:
-Saving component configurations through this directory structure is [deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/415855).
+WARNING:
+Saving component configurations through this directory structure is [deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/415855) and should be avoided.
Components configurations can be saved through the following directory structure, containing:
@@ -167,7 +176,7 @@ To create a release for a CI/CD component, use either:
be released after all tests pass in pipelines for new tags.
- The [UI for creating a release](../../user/project/releases/index.md#create-a-release).
-All released versions of the components are displayed in the CI/CD Catalog
+All released versions of the components are displayed in the [CI/CD Catalog](catalog.md)
page for the given resource, providing users with information about official releases.
Components [can be used](#use-a-component-in-a-cicd-configuration) without being released,