diff --git a/docs/gitlab/drupal/index.md b/docs/gitlab/drupal/index.md index 2a8bbe4d4b7fb673ade2a03f7fae95b8c59755f8..c1d1b96bce27164395f3c051746f9be1eb46dd82 100644 --- a/docs/gitlab/drupal/index.md +++ b/docs/gitlab/drupal/index.md @@ -10,7 +10,7 @@ tags: # GitLab CI for Drupal pipelines This project contains a number of pre-configured tasks for GitLab CI/CD that -allow to run very powerful pipelines which contain the following stages: +allow to run very powerful pipelines which contain the following stage order: - [.pre (predefined)](#pre) - [execute](#execute) @@ -21,9 +21,8 @@ allow to run very powerful pipelines which contain the following stages: - [validate](#validate) - [test (predefined)](#test) - [deploy (predefined)](#deploy) -- finalize -- release -- .post (predefined) +- [finalize](#finalize) +- [release](#release-stage) We have a predefined `execute` job called `LakeDrops`, which looks like this: @@ -61,9 +60,12 @@ available for configuration. The following chapters describes all stages and their jobs. The files: - [lakedrops.yml](https://gitlab.lakedrops.com/gitlab-ci-cd/drupal/-/blob/main/lakedrops.yml?ref_type=heads). +- [tests/lakedrops.yml](https://gitlab.lakedrops.com/gitlab-ci-cd/drupal/-/blob/main/tests/lakedrops.yml?ref_type=heads). - [test_deploy.yml](https://gitlab.lakedrops.com/gitlab-ci-cd/drupal/-/blob/main/test-and-deploy.yml?ref_type=heads). +- [check4updates.yml](https://gitlab.lakedrops.com/gitlab-ci-cd/drupal/-/blob/main/check4updates.yml?ref_type=heads). ### .pre + To prepare and check, if the environment is good to go, we have a `.pre` stage, which contains the following jobs: @@ -209,7 +211,6 @@ The job stores the artefacts in `check4updates`. - Rules, when the job should run: - `$CHECKUPDATES` is set @@ -465,6 +466,34 @@ Rules, when the job should run: ### Postprocess +#### Check 4 Updates Commit + +We start a docker image for php with the specifies versions: + +- `PHP_MAJOR_VERSION` +- `PHP_MINOR_VERSION` + +The following jobs must run before successfully. Some are optional, which means, if they exist, this job waits for them +to complete: + +- [Check 4 Updates](#check-4-updates) + - uses its artefacts +- [Check 4 Security Vulnerability Advisories](#check-4-security-vulnerability-advisories) + - optional +- [Check 4 Outdated Packages](#check-4-outdated-packages) + - optional + +First we have to do some preparation. This is done in the `before_script` section. + +- [.prepareaccess](#prepareaccess) +- [.preparecomposerplugins](#preparecomposerplugins) + + + +Rules, when the job should run: + +- `$CHECKUPDATES` is set +- we are on the `develop` branch ### Test @@ -648,6 +677,27 @@ This job simply stops and removes the docker container, which are started for th `docker compose down` +### Release Stage + +This stage is responsible for creating a new release. + +#### Release Job + +This job extends the internal job [.merge](#merge). + +Rules, when the job should run: + +- `$CI_COMMIT_MESSAGE` contains `CREATE_RELEASE` +- we are on the `develop` branch + +Rules, when the job must not run: + +- if the reference is a `tag` +- `$CI_COMMIT_MESSAGE` contains `Merge tag` +- if it is triggered by config auto export (CAE) +- `$CHECKUPDATES` is set +- `$TRIGGERTASK` is set + ### Internal Stages @@ -676,9 +726,53 @@ The following points will be prepared for [Composer](https://getcomposer.org/): - the configuration `audit.abandoned`, depend on `$IGNORE_COMPOSER_ABANDONED_AUDIT` - unsupported module versions, which are allowed to use +#### .merge + +First we have to do some preparation. This is done in the `before_script` section. + +- [.prepareaccess](#prepareaccess) + +We start a docker image for php with the specifies versions: + +- `PHP_MAJOR_VERSION` +- `PHP_MINOR_VERSION` + +We create a clean directory and clone the git project `$CI_PROJECT_PATH` +for branch `$SOURCE_BRANCH` from `$CI_SERVER_HOST` right into it. + +After that we execute the [merge](https://gitlab.lakedrops.com/docker/gitlab-drupal-ci/-/blob/main/bin/merge?ref_type=heads) +script, which does a few checks and use the `gitlab` tool to merge. + +Finally, we remove the directory we created above. + #### .retry-for-system-issues -#### .cache_default +This little job ste the amount of retries to "2", when: + +- runner_system_failure +- stuck_or_timeout_failure + +#### .cache_paths + +All internal jobs concerning cache will use this job here. It defines the paths: + +- .docker-init/ +- assets/ +- drush/ +- files/ +- keys/ +- settings/ +- vendor/ +- web/core/ +- web/libraries/ +- web/modules/contrib/ +- web/profiles/contrib/ +- web/sites/ +- web/themes/contrib/ +- .ahoy.yml +- .env +- docker-compose.yml + ## Configuration