Skip to content
Snippets Groups Projects
Commit 991f7c00 authored by Jonas Höppner's avatar Jonas Höppner
Browse files

CI: Add include file containing all the CI steps for the foobar projects

Also add all yml files to the yamllint check and replaces the project
path check with a more general project-root check.

BCS 746-000646
parent 64a01fb7
No related branches found
No related tags found
Loading
Pipeline #8827 passed with stages
in 29 seconds
...@@ -50,7 +50,7 @@ yamllint: ...@@ -50,7 +50,7 @@ yamllint:
stage: analyze stage: analyze
timeout: 2m timeout: 2m
script: script:
- yamllint -c .yamllint.yml .*.yml - yamllint -c .yamllint.yml *.yml .*.yml
# --------------------------------------------------------------------------------------- # ---------------------------------------------------------------------------------------
......
---
# -------------------------------------------------------------------------------------
# CI steps needed to integrate a sub project change into the manifest project
# foobar variant which is used for testing the CI
# -------------------------------------------------------------------------------------
image: "${CI_IMAGES}/python/3.9:99e363bc5feaa27ff18dbe7731a76ff04d7d0deb"
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/infrastructure/\
ci-test/minimal-manifest"
# The master branch is hardcoded here, because it cannot be determined automatically.
# Has to be modified for new branches, e.g. new Yocto versions or fix releases.
MASTER_BRANCH: master
stages:
- prepare
- integrate
- merge
- build
- check
workflow:
rules:
# Do not run pipelines on forked projects
- 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
rules:
# We have to make sure that the pipeline runs for the current manifest master at
# the time a merge request is created. Otherwise we cannot guarantee a green
# master after merging.
- if: $CI_MERGE_REQUEST_IID
tags:
- infrastructure
timeout: 2m
cache:
policy: push
script:
- cd ${CI_PROJECT_DIR}
- .gitlab-ci/integrate_into_manifest.py
--gitlab-url=${CI_SERVER_URL}
--token=${GITBOT_TOKEN}
--manifest-project=${MANIFEST_PROJECT}
--integration-base=${MASTER_BRANCH}
--project=${CI_PROJECT_PATH}
--merge-request=${CI_MERGE_REQUEST_IID}
--save-revision-to=manifest_revision
artifacts:
paths:
- manifest_revision
# --------------------------------------------------------------------------------------
# Stage: merge
# --------------------------------------------------------------------------------------
merge:
stage: merge
rules:
- if: $CI_COMMIT_BRANCH == $MASTER_BRANCH
tags:
- infrastructure
timeout: 3m
script:
- cd ${CI_PROJECT_DIR}
- .gitlab-ci/merge_into_manifest.py
--gitlab-url=${CI_SERVER_URL}
--token=${GITBOT_TOKEN}
--manifest-project=${MANIFEST_PROJECT}
--master-branch=${MASTER_BRANCH}
--project=${CI_PROJECT_PATH}
--commit=${CI_COMMIT_SHA}
--save-revision-to=manifest_revision
artifacts:
paths:
- manifest_revision
# --------------------------------------------------------------------------------------
# Stage: build
# --------------------------------------------------------------------------------------
build:
stage: build
rules:
- if: $CI_MERGE_REQUEST_IID
trigger:
project: SECO-Northern-Europe/yocto/infrastructure/ci-test/minimal-manifest
branch: "integrate/${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME}"
strategy: depend
# --------------------------------------------------------------------------------------
# Stage: check
# --------------------------------------------------------------------------------------
check:
stage: check
rules:
- if: $CI_MERGE_REQUEST_IID
needs: ["integrate"]
tags:
- infrastructure
timeout: 2m
script:
- cd ${CI_PROJECT_DIR}
- .gitlab-ci/check_if_integration_branch_is_up_to_date.py
--gitlab-url=${CI_SERVER_URL}
--token=${GITBOT_TOKEN}
--manifest-project=${MANIFEST_PROJECT}
--integration-base=${MASTER_BRANCH}
--project=${CI_PROJECT_PATH}
--merge-request=${CI_MERGE_REQUEST_IID}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment