From 428060111864e1580a4357a4e67a8a09e0d3737d Mon Sep 17 00:00:00 2001 From: Stefan Zweifel Date: Thu, 12 Dec 2019 20:41:00 +0100 Subject: [PATCH] Create lib.sh and update entrypoint.sh --- entrypoint.sh | 44 +++++++++----------------------------------- lib.sh | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 35 deletions(-) create mode 100644 lib.sh diff --git a/entrypoint.sh b/entrypoint.sh index a84b2f9..b4db5d8 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -1,48 +1,22 @@ -#!/bin/sh +#!/bin/bash set -eu -# Set up .netrc file with GitHub credentials -git_setup ( ) { - cat <<- EOF > $HOME/.netrc - machine github.com - login $GITHUB_ACTOR - password $GITHUB_TOKEN +source /lib.sh - machine api.github.com - login $GITHUB_ACTOR - password $GITHUB_TOKEN -EOF - chmod 600 $HOME/.netrc +_switch_to_repository - git config --global user.email "actions@github.com" - git config --global user.name "GitHub Actions" -} +if _git_is_dirty; then -echo "INPUT_REPOSITORY value: $INPUT_REPOSITORY"; + _setup_git -cd $INPUT_REPOSITORY + _switch_to_branch -# This section only runs if there have been file changes -echo "Checking for uncommitted changes in the git working tree." -if [[ -n "$(git status -s)" ]] -then - git_setup + _add_files - echo "INPUT_BRANCH value: $INPUT_BRANCH"; + _local_commit - # Switch to branch from current Workflow run - git checkout $INPUT_BRANCH - - echo "INPUT_FILE_PATTERN: ${INPUT_FILE_PATTERN}" - - git add "${INPUT_FILE_PATTERN}" - - echo "INPUT_COMMIT_OPTIONS: ${INPUT_COMMIT_OPTIONS}" - - git commit -m "$INPUT_COMMIT_MESSAGE" --author="$GITHUB_ACTOR <$GITHUB_ACTOR@users.noreply.github.com>" ${INPUT_COMMIT_OPTIONS:+"$INPUT_COMMIT_OPTIONS"} - - git push --set-upstream origin "HEAD:$INPUT_BRANCH" + _push_to_github else echo "Working tree clean. Nothing to commit." fi diff --git a/lib.sh b/lib.sh new file mode 100644 index 0000000..fefe6ae --- /dev/null +++ b/lib.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +_switch_to_repository() { + echo "INPUT_REPOSITORY value: $INPUT_REPOSITORY"; + cd $INPUT_REPOSITORY +} + +_git_is_dirty() { + [[ -n "$(git status -s)" ]] +} + +# Set up .netrc file with GitHub credentials +_setup_git ( ) { + cat <<- EOF > $HOME/.netrc + machine github.com + login $GITHUB_ACTOR + password $GITHUB_TOKEN + + machine api.github.com + login $GITHUB_ACTOR + password $GITHUB_TOKEN +EOF + chmod 600 $HOME/.netrc + + git config --global user.email "actions@github.com" + git config --global user.name "GitHub Actions" +} + +_switch_to_branch() { + echo "INPUT_BRANCH value: $INPUT_BRANCH"; + + # Switch to branch from current Workflow run + git checkout $INPUT_BRANCH +} + +_add_files() { + echo "INPUT_FILE_PATTERN: ${INPUT_FILE_PATTERN}" + git add "${INPUT_FILE_PATTERN}" +} + +_local_commit() { + echo "INPUT_COMMIT_OPTIONS: ${INPUT_COMMIT_OPTIONS}" + git commit -m "$INPUT_COMMIT_MESSAGE" --author="$GITHUB_ACTOR <$GITHUB_ACTOR@users.noreply.github.com>" ${INPUT_COMMIT_OPTIONS:+"$INPUT_COMMIT_OPTIONS"} +} + +_push_to_github() { + git push --set-upstream origin "HEAD:$INPUT_BRANCH" +}