Skip to content

Commit

Permalink
Merge pull request #24 from stefanzweifel/extract-logic-to-lib
Browse files Browse the repository at this point in the history
Extract methods into lib.sh / Add shellcheck workflow
  • Loading branch information
stefanzweifel authored Dec 16, 2019
2 parents 3c148f8 + dcfe311 commit 4a6ffd0
Show file tree
Hide file tree
Showing 4 changed files with 70 additions and 35 deletions.
12 changes: 12 additions & 0 deletions .github/workflows/shellcheck.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
name: Shellcheck

on: push

jobs:
shellcheck:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1

- name: shellcheck
uses: ludeeus/[email protected]
1 change: 1 addition & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ LABEL "maintainer"="Stefan Zweifel <[email protected]>"

RUN apk add git-lfs

COPY lib.sh /lib.sh
COPY entrypoint.sh /entrypoint.sh

ENTRYPOINT ["sh", "/entrypoint.sh"]
44 changes: 9 additions & 35 deletions entrypoint.sh
Original file line number Diff line number Diff line change
@@ -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 "[email protected]"
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
48 changes: 48 additions & 0 deletions lib.sh
Original file line number Diff line number Diff line change
@@ -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 "[email protected]"
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"
}

0 comments on commit 4a6ffd0

Please sign in to comment.