Skip to content
Snippets Groups Projects
Commit 99767e47 authored by Miguel Angel Reina Ortega's avatar Miguel Angel Reina Ortega
Browse files

Merge request pipelines cannot be triggered, adding a label to the required merge request

parent 1766175c
No related branches found
No related tags found
No related merge requests found
......@@ -20,8 +20,6 @@ echo "CI_PROJECT_NAME:" $7
echo "GITLAB_USER_NAME:" $8
#$GITLAB_USER_EMAIL -> 9
echo "GITLAB_USER_EMAIL:" $9
#CONFLICTING_MERGE_REQUEST -> 11
echo "CONFLICTING_MERGE_REQUEST:" $CONFLICTING_MERGE_REQUEST
#echo "------ Removing previous outputs --------"
rm **/*.txt
......@@ -47,22 +45,6 @@ echo "Checkout merge request source branch ${6} ..."
git checkout -b "${6}" "origin/${6}" #Git checkout actual merge requests SOURCE BRANCHE
git status
if [ ! -z $CONFLICTING_MERGE_REQUEST ] ; then
echo "\n------ Getting a conflicting merge request --------"
mr_source_branch=${$CONFLICTING_MERGE_REQUEST}
echo "Checkout conflicting merge request source branch ${mr_source_branch} ..."
git checkout -b "${mr_source_branch}" "origin/${mr_source_branch}" #Git checkout other merge requests SOURCE BRANCHES
echo "Run dry merge from conflicting merge request source branch ${mr_source_branch} into actual merge request source branch ${6} ..."
git merge --no-commit --no-ff "${6}" #SOURCE BRANCH of the merge request
result=$?
if [ ! $result == 0 ] ; then
echo "Merge request title: ${mr_source_branch}" >> conflicting_merge_requests.txt
else
echo "No conflict with Merge request title: ${mr_source_branch}"
fi
git merge --abort
else
echo "\n------ Getting all potential conflicting merge requests --------"
# Get a list of open merge requests: Filter by the same Milestone and Target Branch as the actual merge request
......@@ -101,14 +83,14 @@ else
if [ ! $result == 0 ] ; then
echo "Merge request title: ${mr_title}, Merge Request ID: ${mr_id}" >> conflicting_merge_requests.txt
conflicting_merge_request_ids+=("${mr_id}")
# Trigger pipeline for conflicting merge requests
echo "Triggering pipeline for merge request ${mr_id}"
curl -X POST \
--fail \
-F token=${10} \
-F ref=${mr_source_branch} \
-F "variables[CONFLICTING_MERGE_REQUEST]=${mr_source_branch}" \
${1}/projects/${2}/trigger/pipeline
# Setting label to the merge request which is conflicting with
echo "Setting label to the merge request which is conflicting with: ${mr_id}"
curl --request PUT \
--silent \
--header "PRIVATE-TOKEN: ${10}" \
--data "add_labels=Conflict with merge request ${5}" \
"${1}/projects/${2}/merge_requests/${mr_id}"
else
echo "No conflict with Merge request title: ${mr_title}, Merge Request ID: ${mr_id}"
fi
......@@ -116,7 +98,6 @@ else
fi
done
fi
if [ -f "conflicting_merge_requests.txt" ]; then
echo "List of conflicting merge requests:"
......
......@@ -26,8 +26,6 @@ Checking conflicts:
rules:
- if: $CI_MERGE_REQUEST_TITLE !~ /v.*_baseline$/ && $CI_PIPELINE_SOURCE == "merge_request_event"
when: always
- if: $CI_MERGE_REQUEST_TITLE !~ /v.*_baseline$/ && $CI_PIPELINE_SOURCE == "trigger"
when: always
allow_failure: true
image: python:3.9.18-slim-bullseye
tags:
......@@ -41,7 +39,7 @@ Checking conflicts:
- git clone "https://$CI_SERVER_HOST/$CI_PROJECT_PATH.git" ${CI_PROJECT_NAME}
script:
- echo 'Checking conflicts'
- ./checking_conflicts.sh ${CI_API_V4_URL} ${CI_MERGE_REQUEST_PROJECT_ID} ${CI_MERGE_REQUEST_MILESTONE} ${CI_MERGE_REQUEST_TARGET_BRANCH_NAME} ${CI_MERGE_REQUEST_IID} ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME} ${CI_PROJECT_NAME} "$GITLAB_USER_NAME" $GITLAB_USER_EMAIL $CHECKING_CONFLICTS_TOKEN $CONFLICTING_MERGE_REQUEST
- ./checking_conflicts.sh ${CI_API_V4_URL} ${CI_MERGE_REQUEST_PROJECT_ID} ${CI_MERGE_REQUEST_MILESTONE} ${CI_MERGE_REQUEST_TARGET_BRANCH_NAME} ${CI_MERGE_REQUEST_IID} ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME} ${CI_PROJECT_NAME} "$GITLAB_USER_NAME" $GITLAB_USER_EMAIL $MIKE_ACCESS_TOKEN
artifacts:
when: on_failure
paths:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment