mirror of
https://gitlab.com/hibou-io/hibou-odoo/suite.git
synced 2025-01-20 12:37:31 +02:00
Merge branch 'imp/11.0/gitlab_automerge' into '11.0'
imp/11.0/gitlab_automerge into 11.0 See merge request hibou-io/hibou-odoo/suite!66
This commit is contained in:
@@ -1,58 +0,0 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
set -x
|
||||
|
||||
echo "Processing for merge requests."
|
||||
|
||||
HOST="${HOST}api/v4/projects/"
|
||||
|
||||
TARGET_BRANCH=$RELEASE
|
||||
|
||||
BODY="{
|
||||
\"id\": ${CI_PROJECT_ID},
|
||||
\"source_branch\": \"${CI_COMMIT_REF_NAME}\",
|
||||
\"target_branch\": \"${TARGET_BRANCH}\",
|
||||
\"remove_source_branch\": true,
|
||||
\"title\": \"WIP RELEASE: ${CI_COMMIT_REF_NAME}\",
|
||||
\"assignee_id\":\"${GITLAB_USER_ID}\"
|
||||
}";
|
||||
|
||||
LISTMR=`curl --silent "${HOST}${CI_PROJECT_ID}/merge_requests?state=opened" --header "PRIVATE-TOKEN:${PRIVATE_TOKEN}"`;
|
||||
MATCHES=`echo ${LISTMR} | jq ".[] | {target_branch: .target_branch | match(\"${TARGET_BRANCH}\"), source_branch: .source_branch | match(\"${CI_COMMIT_REF_NAME}\")}"`;
|
||||
|
||||
# No MR found, let's create a new one
|
||||
if [ -z "${MATCHES}" ]; then
|
||||
curl -X POST "${HOST}${CI_PROJECT_ID}/merge_requests" \
|
||||
--header "PRIVATE-TOKEN:${PRIVATE_TOKEN}" \
|
||||
--header "Content-Type: application/json" \
|
||||
--data "${BODY}";
|
||||
|
||||
echo "Opened a new merge request: WIP RELEASE: ${CI_COMMIT_REF_NAME} and assigned to you";
|
||||
fi
|
||||
|
||||
# Test
|
||||
TARGET_BRANCH="${RELEASE}-test"
|
||||
|
||||
BODY="{
|
||||
\"id\": ${CI_PROJECT_ID},
|
||||
\"source_branch\": \"${CI_COMMIT_REF_NAME}\",
|
||||
\"target_branch\": \"${TARGET_BRANCH}\",
|
||||
\"remove_source_branch\": false,
|
||||
\"title\": \"WIP TEST: ${CI_COMMIT_REF_NAME}\",
|
||||
\"assignee_id\":\"${GITLAB_USER_ID}\"
|
||||
}";
|
||||
|
||||
LISTMR=`curl --silent "${HOST}${CI_PROJECT_ID}/merge_requests?state=opened" --header "PRIVATE-TOKEN:${PRIVATE_TOKEN}"`;
|
||||
MATCHES=`echo ${LISTMR} | jq ".[] | {target_branch: .target_branch | match(\"${TARGET_BRANCH}\"), source_branch: .source_branch | match(\"${CI_COMMIT_REF_NAME}\")}"`;
|
||||
|
||||
# No MR found, let's create a new one
|
||||
if [ -z "${MATCHES}" ]; then
|
||||
curl -X POST "${HOST}${CI_PROJECT_ID}/merge_requests" \
|
||||
--header "PRIVATE-TOKEN:${PRIVATE_TOKEN}" \
|
||||
--header "Content-Type: application/json" \
|
||||
--data "${BODY}";
|
||||
|
||||
echo "Opened a new merge request: WIP TEST: ${CI_COMMIT_REF_NAME} and assigned to you";
|
||||
fi
|
||||
|
||||
|
||||
@@ -17,21 +17,23 @@ before_script:
|
||||
- RELEASE=$(echo $CI_COMMIT_REF_NAME | sed "s{.*\/\(.*\)\/.*{\1{g")
|
||||
- IMAGE_TAG=$(echo $CI_COMMIT_REF_SLUG | sed "s/^\([[:digit:]][[:digit:]]\)-\([[:digit:]]\)/\1\.\2/g")
|
||||
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN registry.gitlab.com
|
||||
- apk add git
|
||||
- git submodule sync --recursive
|
||||
- git submodule update --init --recursive
|
||||
|
||||
merge_request:
|
||||
before_script:
|
||||
- apk add curl jq
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
stage: build
|
||||
only:
|
||||
- /(^new\/)|(^mig\/)|(^imp\/)|(^fix\/)/
|
||||
script:
|
||||
- ls -lah
|
||||
- RELEASE=$(echo $CI_COMMIT_REF_NAME | sed "s{.*\/\(.*\)\/.*{\1{g") HOST=$(echo $CI_PROJECT_URL | sed 's{\(^https://[^/]*/\).*{\1{g') CI_PROJECT_ID=${CI_PROJECT_ID} CI_COMMIT_REF_NAME=${CI_COMMIT_REF_NAME} GITLAB_USER_ID=${GITLAB_USER_ID} PRIVATE_TOKEN=${PRIVATE_TOKEN} ./.gitlab-ci-automerge.sh
|
||||
- docker pull registry.gitlab.com/hibou-io/hibou-odoo/flow
|
||||
- docker tag registry.gitlab.com/hibou-io/hibou-odoo/flow flow
|
||||
- ENVS=`env | grep "CI_\|GITLAB_" | sed -n '/^[^\t]/s/=.*//p' | sed '/^$/d' | sed 's/^/-e /g' | tr '\n' ' '`
|
||||
- docker run $ENVS flow gitlab-automerge --target-branch "${RELEASE}-test" --automerge
|
||||
- docker run $ENVS flow gitlab-automerge --remove-source
|
||||
|
||||
build:
|
||||
variables:
|
||||
GIT_SUBMODULE_STRATEGY: recursive
|
||||
stage: build
|
||||
script:
|
||||
- sed -i "s/RELEASE/$RELEASE/g" Dockerfile-GitLab
|
||||
@@ -39,6 +41,8 @@ build:
|
||||
- docker push $CONTAINER_IMAGE:$IMAGE_TAG
|
||||
|
||||
trigger:
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
stage: trigger
|
||||
script:
|
||||
- docker run byrnedo/alpine-curl curl --request POST --form "token=$CI_JOB_TOKEN" --form ref=$RELEASE $GITLAB_BASE_URL/api/v4/projects/$ENTERPRISE_PROJECT_ID/trigger/pipeline
|
||||
|
||||
Reference in New Issue
Block a user