From 3731a45a44bca446b8fb19bcccff14ecf95af89c Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Mon, 2 Sep 2019 17:05:37 -0700 Subject: [PATCH] Improve .gitlab-ci.yml by utilizing Hibou Flow --- .gitlab-ci-automerge.sh | 58 ----------------------------------------- .gitlab-ci.yml | 11 +++++--- 2 files changed, 7 insertions(+), 62 deletions(-) delete mode 100755 .gitlab-ci-automerge.sh diff --git a/.gitlab-ci-automerge.sh b/.gitlab-ci-automerge.sh deleted file mode 100755 index eda4db46..00000000 --- a/.gitlab-ci-automerge.sh +++ /dev/null @@ -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 - - diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 43e05b74..2da4a1a0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -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