mirror of
https://github.com/stefanzweifel/git-auto-commit-action.git
synced 2024-12-06 02:09:04 +00:00
5dd90bb58c
If we use "source /lib.sh", bash will point to wrong line in case of an error. It's confusing on debuggin new features
73 lines
1.4 KiB
Bash
Executable File
73 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -eu
|
|
|
|
_main() {
|
|
_switch_to_repository
|
|
|
|
if _git_is_dirty; then
|
|
|
|
_setup_git
|
|
|
|
_switch_to_branch
|
|
|
|
_add_files
|
|
|
|
_local_commit
|
|
|
|
_push_to_github
|
|
else
|
|
echo "Working tree clean. Nothing to commit."
|
|
fi
|
|
}
|
|
|
|
|
|
_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"
|
|
}
|
|
|
|
_main
|