Support creation of target branch

This commit is contained in:
martin 2022-12-19 19:25:39 -08:00
parent 9e487f2958
commit f93a9d944e
2 changed files with 19 additions and 9 deletions

View File

@ -48,6 +48,10 @@ inputs:
description: '[Optional] The directory to wipe and replace in the target repository' description: '[Optional] The directory to wipe and replace in the target repository'
default: '' default: ''
required: false required: false
create-target-branch:
description: '[Optional] Boolean indicating whether to create target branch if it does not exist'
default: 'false'
required: false
runs: runs:
using: docker using: docker
@ -64,6 +68,7 @@ runs:
- '${{ inputs.target-branch }}' - '${{ inputs.target-branch }}'
- '${{ inputs.commit-message }}' - '${{ inputs.commit-message }}'
- '${{ inputs.target-directory }}' - '${{ inputs.target-directory }}'
- '${{ inputs.create-target-branch }}'
branding: branding:
icon: git-commit icon: git-commit
color: green color: green

View File

@ -15,6 +15,7 @@ DESTINATION_REPOSITORY_USERNAME="${8}"
TARGET_BRANCH="${9}" TARGET_BRANCH="${9}"
COMMIT_MESSAGE="${10}" COMMIT_MESSAGE="${10}"
TARGET_DIRECTORY="${11}" TARGET_DIRECTORY="${11}"
CREATE_TARGET_BRANCH="${12}"
if [ -z "$DESTINATION_REPOSITORY_USERNAME" ] if [ -z "$DESTINATION_REPOSITORY_USERNAME" ]
then then
@ -65,16 +66,20 @@ echo "[+] Cloning destination git repository $DESTINATION_REPOSITORY_NAME"
git config --global user.email "$USER_EMAIL" git config --global user.email "$USER_EMAIL"
git config --global user.name "$USER_NAME" git config --global user.name "$USER_NAME"
{ if ! git clone --single-branch --depth 1 --branch "$TARGET_BRANCH" "$GIT_CMD_REPOSITORY" "$CLONE_DIR"; then
git clone --single-branch --depth 1 --branch "$TARGET_BRANCH" "$GIT_CMD_REPOSITORY" "$CLONE_DIR" if ${CREATE_TARGET_BRANCH} && git clone --single-branch --depth 1 "$GIT_CMD_REPOSITORY" "$CLONE_DIR"; then
} || { echo "[+] Creating branch ${TARGET_BRANCH}"
echo "::error::Could not clone the destination repository. Command:" git branch ${TARGET_BRANCH}
echo "::error::git clone --single-branch --branch $TARGET_BRANCH $GIT_CMD_REPOSITORY $CLONE_DIR" git switch ${TARGET_BRANCH}
echo "::error::(Note that if they exist USER_NAME and API_TOKEN is redacted by GitHub)" else
echo "::error::Please verify that the target repository exist AND that it contains the destination branch name, and is accesible by the API_TOKEN_GITHUB OR SSH_DEPLOY_KEY" echo "::error::Could not clone the destination repository. Command:"
exit 1 echo "::error::git clone --single-branch --branch $TARGET_BRANCH $GIT_CMD_REPOSITORY $CLONE_DIR"
echo "::error::(Note that if they exist USER_NAME and API_TOKEN is redacted by GitHub)"
echo "::error::Please verify that the target repository exist AND that it contains the destination branch name, and is accesible by the API_TOKEN_GITHUB OR SSH_DEPLOY_KEY"
exit 1
fi
fi
}
ls -la "$CLONE_DIR" ls -la "$CLONE_DIR"
TEMP_DIR=$(mktemp -d) TEMP_DIR=$(mktemp -d)