mirror of
https://gitlab.com/hibou-io/hibou-odoo/suite.git
synced 2025-01-20 12:37:31 +02:00
Improve .gitlab-ci.yml by utilizing Hibou Flow
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
|
|
||||||
|
|
||||||
|
|
||||||
@@ -19,14 +19,17 @@ before_script:
|
|||||||
- 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
|
||||||
|
|
||||||
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
|
||||||
|
|
||||||
build:
|
build:
|
||||||
stage: build
|
stage: build
|
||||||
|
|||||||
Reference in New Issue
Block a user