diff --git a/docs/gitlab/drupal/index.md b/docs/gitlab/drupal/index.md index d1abda2ce6ba5ec9e3b1433dd4252baa07672ec5..c378463973577d80cff132ba27bbffcfc82760fb 100644 --- a/docs/gitlab/drupal/index.md +++ b/docs/gitlab/drupal/index.md @@ -12,14 +12,14 @@ tags: 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: -- .pre (predefined) -- validate -- execute -- build (predefined) -- buildprod -- prepare -- test (predefined) -- deploy (predefined) +- [.pre (predefined)](#pre) +- [validate](#validate) +- [execute](#execute) +- [build (predefined)](#build) +- [buildprod](#build-prod) +- [prepare](#prepare) +- [test (predefined)](#test) +- [deploy (predefined)](#deploy) - release - finalize - postprocess @@ -29,26 +29,26 @@ We have a predefined `execute` job called `LakeDrops`, which looks like this: - execute - LakeDrops - - buildprod - - Build Prod Site - - Build Prod Site NG - - build - - Build Site - - Build Theme - - Check 4 Outdated Packages - - Check 4 Security Vulnerability Advisories - - Download DB - - Download DB NG - - prepare - - Import DB - - Import DB NG - - Import Local DB - - Update DB - - test - - Test Code Style - - Test PHPUnit - - Test Backstop - - Test Cypress E2E + - [buildprod](#build-prod) + - [Build Prod Site](#build-prod-site) + - [Build Prod Site NG](#build-prod-site-ng) + - [build (predefined)](#build) + - [Build Site](#build-site) + - [Build Theme](#build-theme) + - [Check 4 Outdated Packages](#check-4-outdated-packages) + - [Check 4 Security Vulnerability Advisories](#check-4-security-vulnerability-advisories) + - [Download DB](#download-db) + - [Download DB NG](#download-db-ng) + - [prepare](#prepare) + - [Import DB](#import-db) + - [Import DB NG](#import-db-ng) + - [Import Local DB](#import-local-db) + - [Update DB](#update-db) + - [test](#test) + - [Test Code Style](#test-code-style) + - [Test PHPUnit](#test-phpunit) + - [Test Backstop](#test-backstop) + - [Test Cypress E2E](#test-cypress-e2e) - finalize - Shut Down Docker Project @@ -193,7 +193,11 @@ The following jobs must run before successfully: - [Build Prod Site](#build-prod-site) +#### Check 4 Outdated Packages + + +#### Check 4 Security Vulnerability Advisories #### Download DB @@ -266,7 +270,7 @@ Rules, when the job should run: ##### Import DB Default Anchor -We start a docker image for php with the specifies versions: +We start a docker image for `php` with the specifies versions: - `PHP_MAJOR_VERSION` - `PHP_MINOR_VERSION` @@ -345,6 +349,63 @@ Rules, when the job should run: - the tests are enabled by `$DISABLE_CI_TESTS` != "1" +### Test + +After the preparation and the setup of a Drupal database, we can execute tests. This happens in this stage. + +All tests use the two [Internal Test Stages](#internal-test-stages). + +#### Test Code Style + +This job uses [PHP Code Sniffer](../../dev_tools/test.md#php-code-sniffer) and stores the artefacts in `phpcs`. + +Rules, when the job should run: + +- the code style tests are enabled by `$DISABLE_CI_TEST_CODESTYLE` != "1" + +#### Test PHPUnit + + +#### Test Backstop + + +#### Test Cypress E2E + +#### Internal Test Stages + +Every test stage needs internal reoccurring definitions. + +**.test_lakedrops_default** + +We start a docker image for `php` with the specifies versions: + +- `PHP_MAJOR_VERSION` +- `PHP_MINOR_VERSION` + +The following jobs must run before successfully: + +- [Build Site](#build-site) + +But this job can start running when the [Build Site](#build-site) has finished, so other +test jobs can run in parallel. + +After running, we copy the logs from the `php` container to the current directory. + + +**.test_lakedrops_theme** + +The following jobs must run before successfully: + +- [Build Site](#build-site) +- [Build Theme](#build-theme) + +In the `before_script` part, we copy the `$THEME_CSS_PATH` into the `php` container, if the +`$THEME_BUILD` variable ist set to "yes". + +In `after_script` we remove `$THEME_CSS_PATH` again. + +#### + ### Deploy This stage handles the deployment of the produced build artefact. @@ -410,7 +471,7 @@ This internal job, you find in [mixins.yml](https://gitlab.lakedrops.com/gitlab- Mainly, we care about getting access to: -- the host `${CI_SERVER_HOST}` with `ssh` via `$SSH_PRIVATE_KEY` +- the host `$CI_SERVER_HOST` with `ssh` via `$SSH_PRIVATE_KEY` - GitLab Login via `$GITLAB_ACCESS_TOKEN` and `$GITLAB_PRIVATE_TOKEN` - Docker configuration via `$DOCKER_AUTH_CONFIG`