Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
manifest-integration.yml 5.37 KiB
---
# ---------------------------------------------------------------------------------------
# Global
# ---------------------------------------------------------------------------------------
image: "${CI_IMAGES}/python/3.9:99e363bc5feaa27ff18dbe7731a76ff04d7d0deb"

stages:
  - prepare
  - integrate
  - merge
  - build
  - check

variables:
  # CI_IMAGES_BASEPATH: Environment variable configure in gitlab
  CI_IMAGES: ${CI_IMAGES_BASEPATH}/ci-images
  # Include git submodules
  GIT_SUBMODULE_STRATEGY: recursive
  # FIXME: due to a missing feature in GitLab we cannot use this variable
  # in the build stage further down this file. If it ever changes, it has
  # to be changed there too.
  # (https://gitlab.com/gitlab-org/gitlab/-/issues/249583)
  MANIFEST_PROJECT: ${CI_PROJECT_ROOT_NAMESPACE}/yocto/manifest
  MASTER_BRANCH_MANIFEST: dunfell
  MASTER_BRANCH_PROJECT: dunfell
  # The BB_RECIPE_NAME is used for projects referenced in the SRCREV file
  # to match the repository and the bitbake recipe name.
  # We set it here to none, as every project needing it
  # has to specify it in its own gitlab-ci.yml file.
  # The BB_RECIPE_NAME is passed to the python scripts below anyway, but not
  # used for projects referenced in the manifest file.
  BB_RECIPE_NAME: none
  # Reduced depth as checkout of larger projects (like the kernel)
  # may take too long
  GIT_DEPTH: 5

workflow:
  rules:
    # Do not run pipelines on forked projects.
    # The pipelines would not work anyway because of the users permissions.
    # There are two cases catched here:
    # 1. The project is forked into someones gitlab namespace and a MR to
    #    include a change into this forked project is created. In this case
    #    is the CI_PROJECT_ROOT_NAMESPACE not SECO-Northern-Europe but the
    #    namespace the fork lives in.
    # 2. The MR from the forked project is created to merge the change into this
    #    the project in the SECO-Northern-Europe namespace (customer sending
    #    change to us). Here the the IDs used below differ.
    #
    - if: $CI_PROJECT_ROOT_NAMESPACE == "SECO-Northern-Europe"
        && $CI_MERGE_REQUEST_SOURCE_PROJECT_ID == $CI_MERGE_REQUEST_PROJECT_ID

# ---------------------------------------------------------------------------------------
# Stage: prepare
# ---------------------------------------------------------------------------------------
yamllint:
  stage: prepare
  rules:
    - if: $CI_COMMIT_REF_NAME != $MASTER_BRANCH
  tags:
    - infrastructure
  timeout: 2m
  script:
    - yamllint -c .gitlab-ci/.yamllint.yml .*.yml

# ---------------------------------------------------------------------------------------
# Stage: integrate
# ---------------------------------------------------------------------------------------
integrate:
  stage: integrate