Skip to content
Snippets Groups Projects
Commit 80380e90 authored by Lorenzo Pagliai's avatar Lorenzo Pagliai
Browse files

[CICD] First commit for Edgehog project integration test

* Insert Edgehog Docker image instead of that from container registry
* Perform only manifest integration
parent 9b8cf51c
No related branches found
No related tags found
No related merge requests found
......@@ -28,7 +28,7 @@ variables:
tags:
- infrastructure
timeout: 10m
image: "${CI_IMAGE_PYTHON}"
image: secodocker/edgehog-builder:latest #"${CI_IMAGE_PYTHON}"
needs: []
variables:
# Include git submodules
......
......@@ -37,7 +37,7 @@ workflow:
# the project in the seco-ne namespace (customer sending
# change to us). Here the the IDs used below differ.
#
- if: $CI_PROJECT_ROOT_NAMESPACE == "seco-ne"
- if: $CI_PROJECT_ROOT_NAMESPACE == "edgehog"
&& $CI_MERGE_REQUEST_SOURCE_PROJECT_ID == $CI_MERGE_REQUEST_PROJECT_ID
# --------------------------------------------------------------------------------------
......@@ -59,6 +59,10 @@ integrate:
cache:
policy: push
script:
- echo "CI_PROJECT_DIR is defined as ${CI_PROJECT_DIR}"
- echo "CI_PROJECT_PATH is defined as ${CI_PROJECT_PATH}"
- echo "CI_SERVER_URL is defined as ${CI_SERVER_URL}"
- echo "CI_MERGE_REQUEST_IID is defined as ${CI_MERGE_REQUEST_IID}"
- cd ${CI_PROJECT_DIR}
- if [ -n "${CI_MERGE_REQUEST_IID}" ];then
MERGE_REQUEST="${CI_MERGE_REQUEST_IID}";
......@@ -79,93 +83,94 @@ integrate:
paths:
- manifest_revision
yamllint:
extends: .yamllint
# --------------------------------------------------------------------------------------
# Stage: merge
# --------------------------------------------------------------------------------------
merge:
extends: .infrastructure
stage: merge
rules:
- if: $CI_COMMIT_BRANCH == $MASTER_BRANCH_PROJECT
script:
- cd ${CI_PROJECT_DIR}
- .gitlab-ci/scripts/merge_into_manifest.py
--gitlab-url=${CI_SERVER_URL}
--token=${GITBOT_TOKEN}
--manifest-project=${MANIFEST_PROJECT}
--master-branch=${MASTER_BRANCH_MANIFEST}
--project=${CI_PROJECT_PATH}
--master-branch-project=${MASTER_BRANCH_PROJECT}
--commit=${CI_COMMIT_SHA}
--save-revision-to=manifest_revision
--recipe-name=${BB_RECIPE_NAME}
artifacts:
paths:
- manifest_revision
# --------------------------------------------------------------------------------------
# Stage: build
# --------------------------------------------------------------------------------------
build:
stage: build
rules:
# Do not run build if the "skip build" label is set on the merge request
- if: $CI_MERGE_REQUEST_LABELS =~ /skip build/
when: never
# execute this in MR only and not for integrate/gitlab-ci/ integrations
# branches. These are build after the integration has been done in all
# projects
- if: $CI_MERGE_REQUEST_IID && $CI_COMMIT_REF_NAME !~ /^integrate\/gitlab-ci\/.*/
trigger:
project: !reference [variables, MANIFEST_PROJECT]
branch: "integrate/${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME}"
strategy: depend
# --------------------------------------------------------------------------------------
# Stage: check
# --------------------------------------------------------------------------------------
check:
extends: .infrastructure
stage: check
rules:
# Do not run check if the "skip build" label is set on the merge request
- if: $CI_MERGE_REQUEST_LABELS =~ /skip build/
when: never
# Do not integration pipeline for merge requests for integrate/gitlab-ci/ branches
# The integration is done from the pipeline in gitlab-ci already
- if: $CI_COMMIT_REF_NAME =~ /^integrate\/gitlab-ci\/.*/
when: never
- if: $CI_MERGE_REQUEST_IID
# Explicitly allow externally triggered pipelines in every case
- if: $CI_PIPELINE_SOURCE == "pipeline" || $CI_PIPELINE_SOURCE == "api"
needs: ["integrate"]
allow_failure: true
script:
- cd ${CI_PROJECT_DIR}
# When running in a trigger pipeline the CII_MERGE_REQUEST_IID is not set
# but CI_OPEN_MERGE_REQUESTS. We use the first of this comma separated list
# in this case
- if [ -n "${CI_MERGE_REQUEST_IID}" ];then
MERGE_REQUEST="${CI_MERGE_REQUEST_IID}";
else
MERGE_REQUEST="${CI_OPEN_MERGE_REQUESTS%%,*}";
fi
# The 'parent_merge_request' is passed from the trigger
# in case this check job is part of a gitlab-ci integration
# pipeline. It is only used to display the correct MR to run again
# in a failed check
- if [ -n "${parent_merge_request}" ];then
PARENT_MR="--parent-merge-request=${parent_merge_request}";
fi
- .gitlab-ci/scripts/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_MANIFEST}
--project=${CI_PROJECT_PATH}
--merge-request=${MERGE_REQUEST}
--verbose
${PARENT_MR}
# yamllint:
# extends: .yamllint
#
# # --------------------------------------------------------------------------------------
# # Stage: merge
# # --------------------------------------------------------------------------------------
# merge:
# extends: .infrastructure
# stage: merge
# rules:
# - if: $CI_COMMIT_BRANCH == $MASTER_BRANCH_PROJECT
# script:
# - cd ${CI_PROJECT_DIR}
# - .gitlab-ci/scripts/merge_into_manifest.py
# --gitlab-url=${CI_SERVER_URL}
# --token=${GITBOT_TOKEN}
# --manifest-project=${MANIFEST_PROJECT}
# --master-branch=${MASTER_BRANCH_MANIFEST}
# --project=${CI_PROJECT_PATH}
# --master-branch-project=${MASTER_BRANCH_PROJECT}
# --commit=${CI_COMMIT_SHA}
# --save-revision-to=manifest_revision
# --recipe-name=${BB_RECIPE_NAME}
# artifacts:
# paths:
# - manifest_revision
#
# # --------------------------------------------------------------------------------------
# # Stage: build
# # --------------------------------------------------------------------------------------
# build:
# stage: build
# rules:
# # Do not run build if the "skip build" label is set on the merge request
# - if: $CI_MERGE_REQUEST_LABELS =~ /skip build/
# when: never
# # execute this in MR only and not for integrate/gitlab-ci/ integrations
# # branches. These are build after the integration has been done in all
# # projects
# - if: $CI_MERGE_REQUEST_IID && $CI_COMMIT_REF_NAME !~ /^integrate\/gitlab-ci\/.*/
# trigger:
# project: !reference [variables, MANIFEST_PROJECT]
# branch: "integrate/${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME}"
# strategy: depend
#
# # --------------------------------------------------------------------------------------
# # Stage: check
# # --------------------------------------------------------------------------------------
# check:
# extends: .infrastructure
# stage: check
# rules:
# # Do not run check if the "skip build" label is set on the merge request
# - if: $CI_MERGE_REQUEST_LABELS =~ /skip build/
# when: never
# # Do not integration pipeline for merge requests for integrate/gitlab-ci/ branches
# # The integration is done from the pipeline in gitlab-ci already
# - if: $CI_COMMIT_REF_NAME =~ /^integrate\/gitlab-ci\/.*/
# when: never
# - if: $CI_MERGE_REQUEST_IID
# # Explicitly allow externally triggered pipelines in every case
# - if: $CI_PIPELINE_SOURCE == "pipeline" || $CI_PIPELINE_SOURCE == "api"
# needs: ["integrate"]
# allow_failure: true
# script:
# - cd ${CI_PROJECT_DIR}
# # When running in a trigger pipeline the CII_MERGE_REQUEST_IID is not set
# # but CI_OPEN_MERGE_REQUESTS. We use the first of this comma separated list
# # in this case
# - if [ -n "${CI_MERGE_REQUEST_IID}" ];then
# MERGE_REQUEST="${CI_MERGE_REQUEST_IID}";
# else
# MERGE_REQUEST="${CI_OPEN_MERGE_REQUESTS%%,*}";
# fi
# # The 'parent_merge_request' is passed from the trigger
# # in case this check job is part of a gitlab-ci integration
# # pipeline. It is only used to display the correct MR to run again
# # in a failed check
# - if [ -n "${parent_merge_request}" ];then
# PARENT_MR="--parent-merge-request=${parent_merge_request}";
# fi
# - .gitlab-ci/scripts/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_MANIFEST}
# --project=${CI_PROJECT_PATH}
# --merge-request=${MERGE_REQUEST}
# --verbose
# ${PARENT_MR}
#
\ No newline at end of file
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