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
|
||||
|
||||
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
|
||||
|
||||
build:
|
||||
stage: build
|
||||
|
||||
Reference in New Issue
Block a user