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")
|
- 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")
|
- 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
|
- 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:
|
merge_request:
|
||||||
before_script:
|
variables:
|
||||||
- apk add curl jq
|
GIT_STRATEGY: none
|
||||||
stage: build
|
stage: build
|
||||||
only:
|
only:
|
||||||
- /(^new\/)|(^mig\/)|(^imp\/)|(^fix\/)/
|
- /(^new\/)|(^mig\/)|(^imp\/)|(^fix\/)/
|
||||||
script:
|
script:
|
||||||
- ls -lah
|
- docker pull registry.gitlab.com/hibou-io/hibou-odoo/flow
|
||||||
- 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 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:
|
build:
|
||||||
|
variables:
|
||||||
|
GIT_SUBMODULE_STRATEGY: recursive
|
||||||
stage: build
|
stage: build
|
||||||
script:
|
script:
|
||||||
- sed -i "s/RELEASE/$RELEASE/g" Dockerfile-GitLab
|
- sed -i "s/RELEASE/$RELEASE/g" Dockerfile-GitLab
|
||||||
@@ -39,6 +41,8 @@ build:
|
|||||||
- docker push $CONTAINER_IMAGE:$IMAGE_TAG
|
- docker push $CONTAINER_IMAGE:$IMAGE_TAG
|
||||||
|
|
||||||
trigger:
|
trigger:
|
||||||
|
variables:
|
||||||
|
GIT_STRATEGY: none
|
||||||
stage: trigger
|
stage: trigger
|
||||||
script:
|
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
|
- 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