Testing against main ref

Migrated issue

Reported by: jonathan1055

Related to !44 (merged) !49 (closed) !51 (closed) !43 (merged)

This issue is a follow-up from the discussion on #3557370: PHPCS fails on d7-basic - The Drupal standard is not found

Problem/Motivation

Gitlab Templates Downstream (GTD) branches should run against the 'main' ref by default, so that scheduled branches and stand-alone MR are always testing the latest changes in Gitlab Templates (GT).

However, we cannot simply hardcode ref: 'main' in each GTD branch's .gitlab-ci.yml as that would prevent them being tested as downstream pipelines from an upsream GT merge request.

Initial proposed resolution

In gitlab_templates > .gitlab-ci.yml

.downstream-base:
  ...
  variables:
    # So downstream plugins know which .gitlab-ci.yml include to use.
    _GITLAB_TEMPLATES_REPO: $CI_PROJECT_PATH
    _GITLAB_TEMPLATES_REF: $CI_COMMIT_REF_NAME
    _GTD_TEMPLATE_REF: $CI_COMMIT_REF_NAME
    ...

Then in gitlab_templates_downstream > .gitlab-ci.yml

variables:
  ...
  _GTD_TEMPLATE_REF: 'main'

include:
  - project: $_GITLAB_TEMPLATES_REPO
    ref: $_GTD_TEMPLATE_REF

That would set up the correct ref for downstream piipelines and main for “normal” project pipelines

Actual resolution

  • Use the project CI/CD settings to specify an override value "main" for _GITLAB_TEMPLATES_REF
  • This variable is also automatically copied to issue fork branches when the fork is created
  • Some existing issue forks do not have this setting, and that cannot be changed. We will work with this, and the problem will diminish as MR and issues are closed
Assignee Loading
Time tracking Loading