From d3c70946380feffadc4e8138c52c79ae0586d90b Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Fri, 4 Dec 2020 01:28:10 -0500 Subject: [PATCH] refactor: move branch name fetching to new script Also properly detect injected branch name. --- bin/dokku-deploy | 26 ++------------------------ bin/parse-ci-branch-name | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 24 deletions(-) create mode 100755 bin/parse-ci-branch-name diff --git a/bin/dokku-deploy b/bin/dokku-deploy index 97b2e91..8f573e7 100755 --- a/bin/dokku-deploy +++ b/bin/dokku-deploy @@ -8,34 +8,12 @@ ssh_remote="ssh://dokku@$(parse-ssh-host):$(parse-ssh-port)" if [ "$COMMAND" = "review-apps:create" ] || [ "$COMMAND" = 'review-apps:destroy' ]; then if [ -z "$REVIEW_APP_NAME" ]; then - CI_BRANCH_NAME="" - if [ -n "$CI_COMMIT_REF_NAME" ]; then - # gitlab-ci - CI_BRANCH_NAME="$CI_COMMIT_REF_NAME" - elif [ -n "$GITHUB_REF" ]; then - # github actions - CI_BRANCH_NAME="${GITHUB_REF#refs/heads/}" - elif [ -n "$CIRCLE_BRANCH" ]; then - # circleci - CI_BRANCH_NAME="$CIRCLE_BRANCH" - elif [ -n "$TRAVIS_BRANCH" ]; then - # travisci - CI_BRANCH_NAME="$TRAVIS_BRANCH" - elif [ -n "$SEMAPHORE_GIT_BRANCH" ]; then - # semaphoreci - CI_BRANCH_NAME="SEMAPHORE_GIT_BRANCH" - elif [ -n "$CI_BRANCH" ]; then - # cloudbees - CI_BRANCH_NAME="CI_BRANCH" - elif [ -n "$DRONE_COMMIT_BRANCH" ]; then - # drone - CI_BRANCH_NAME="DRONE_COMMIT_BRANCH" - else + CI_BRANCH_NAME="$(parse-ci-branch-name)" + if [ -z "$CI_BRANCH_NAME" ]; then log-error "Unable to detect branch name and cannot generate review app name" exit 1 fi - CI_BRANCH_NAME="$(echo "$CI_BRANCH_NAME" | tr '[:upper:]' '[:lower:]' | sed "s/[[:alpha:].-]/-/g")" REVIEW_APP_NAME="review-${app_name}-${CI_BRANCH_NAME}" log-info "No review app name specified, using $REVIEW_APP_NAME" fi diff --git a/bin/parse-ci-branch-name b/bin/parse-ci-branch-name new file mode 100755 index 0000000..c3e813f --- /dev/null +++ b/bin/parse-ci-branch-name @@ -0,0 +1,32 @@ +#!/bin/sh -l +set -e + +value="$CI_BRANCH_NAME" +if [ -n "$CI_BRANCH_NAME" ]; then + true +elif [ -n "$CI_COMMIT_REF_NAME" ]; then + # gitlab-ci + value="$CI_COMMIT_REF_NAME" +elif [ -n "$GITHUB_REF" ]; then + # github actions + value="${GITHUB_REF#refs/heads/}" +elif [ -n "$CIRCLE_BRANCH" ]; then + # circleci + value="$CIRCLE_BRANCH" +elif [ -n "$TRAVIS_BRANCH" ]; then + # travisci + value="$TRAVIS_BRANCH" +elif [ -n "$SEMAPHORE_GIT_BRANCH" ]; then + # semaphoreci + value="SEMAPHORE_GIT_BRANCH" +elif [ -n "$CI_BRANCH" ]; then + # cloudbees + value="CI_BRANCH" +elif [ -n "$DRONE_COMMIT_BRANCH" ]; then + # drone + value="DRONE_COMMIT_BRANCH" +else + exit 0 +fi + +echo "$value" | tr '[:upper:]' '[:lower:]' | sed "s/[[:alpha:].-]/-/g"