diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 28eee5b3320cc156566c4e4490316a596fce3356..6376ff6e0df2512a7393de5af248c99716cab3eb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,4 +1,4 @@ -# cspell:ignore codequality Micheh micheh +# cspell:ignore codequality Micheh micheh webide ################ # Drupal GitLabCI template. @@ -12,23 +12,35 @@ ################ ################ -# Includes +# Workflow # -# Additional configuration can be provided through includes. -# One advantage of include files is that if they are updated upstream, the -# changes affect all pipelines using that include. +# Define conditions for when the pipeline will run. +# For example: +# * On commit +# * On merge request +# * On manual trigger +# * etc. +# https://docs.gitlab.com/ee/ci/jobs/job_control.html#specify-when-jobs-run-with-rules # -# Includes can be overridden by re-declaring anything provided in an include, -# here in gitlab-ci.yml. -# https://docs.gitlab.com/ee/ci/yaml/includes.html#override-included-configuration-values +# Pipelines can also be configured to run on a schedule,though they still must meet the conditions defined in Workflow and Rules. This can be used, for example, to do nightly regression testing: +# https://gitlab.com/help/ci/pipelines/schedules ################ -include: - - project: $_GITLAB_TEMPLATES_REPO - ref: $_GITLAB_TEMPLATES_REF - file: - - '/includes/include.drupalci.variables.yml' - - '/includes/include.drupalci.workflows.yml' +workflow: + rules: + # These 3 rules from https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Workflows/MergeRequest-Pipelines.gitlab-ci.yml + # Run on merge requests + - if: $CI_PIPELINE_SOURCE == 'merge_request_event' + # Run when called from an upstream pipeline https://docs.gitlab.com/ee/ci/pipelines/downstream_pipelines.html?tab=Multi-project+pipeline#use-rules-to-control-downstream-pipeline-jobs + - if: $CI_PIPELINE_SOURCE == 'pipeline' + # Run on commits. + - if: $CI_PIPELINE_SOURCE == "push" && $CI_PROJECT_ROOT_NAMESPACE == "project" + # The last rule above blocks manual and scheduled pipelines on non-default branch. The rule below allows them: + - if: $CI_PIPELINE_SOURCE == "schedule" && $CI_PROJECT_ROOT_NAMESPACE == "project" + # Run if triggered from Web using 'Run Pipelines' + - if: $CI_PIPELINE_SOURCE == "web" + # Run if triggered from WebIDE + - if: $CI_PIPELINE_SOURCE == "webide" ################ # Variables @@ -42,7 +54,7 @@ include: ################ variables: - COMPOSER: composer.json + _CONFIG_DOCKERHUB_ROOT: "drupalci" # Let composer know what self.version means. COMPOSER_ROOT_VERSION: "${CI_MERGE_REQUEST_TARGET_BRANCH_NAME}${CI_COMMIT_BRANCH}-dev" CONCURRENCY: 24