Compare commits

...

16 Commits

Author SHA1 Message Date
Stefan Zweifel
bbd291750d Release v4.7.2 2020-10-24 11:41:07 +02:00
Stefan Zweifel
114a5e6044 Merge pull request #122 from stefanzweifel/revert-113-pr/complex-branches-2
Revert "Fix checking out branch names with / chars"
2020-10-24 11:36:23 +02:00
Stefan Zweifel
4a75a2e723 Disable shellsheck for git-checkout 2020-10-24 11:33:52 +02:00
Stefan Zweifel
1e826be61c Revert "Fix checking out branch names with / chars" 2020-10-24 11:28:52 +02:00
Stefan Zweifel
4bab898d25 Create Remote Branch before running Action 2020-10-22 19:52:43 +02:00
Stefan Zweifel
45872c3c23 Fix Typo in CHANGELOG 2020-10-22 07:38:33 +02:00
Stefan Zweifel
9b7c21583c Release v4.7.1 2020-10-22 07:37:21 +02:00
Stefan Zweifel
4cc90c7784 Fix Linter Errors 2020-10-22 07:37:16 +02:00
Stefan Zweifel
367938329d Merge pull request #120 from stefanzweifel/revert-115-feature/checkout-options
Revert "Feature: Checkout Options"
2020-10-22 07:35:11 +02:00
Stefan Zweifel
25cac34d8d Revert "Feature: Checkout Options" 2020-10-22 07:33:38 +02:00
Stefan Zweifel
30cd17bff0 Merge branch 'master' of github.com:stefanzweifel/git-auto-commit-action 2020-10-21 20:45:48 +02:00
Stefan Zweifel
65928d2898 Merge pull request #118 from stefanzweifel/tests-on-github-actions
Test Action through GitHub Actions ♾️
2020-10-17 14:59:06 +02:00
Stefan Zweifel
6b4ef1444c Add Badge 2020-10-17 14:52:58 +02:00
Stefan Zweifel
55291ea168 Rename Step 2020-10-17 14:51:58 +02:00
Stefan Zweifel
2b5c86365b Delete Remote Branch 2020-10-17 14:46:50 +02:00
Stefan Zweifel
ff28943460 Add Integration Tests 2020-10-17 14:29:42 +02:00
6 changed files with 72 additions and 67 deletions

31
.github/workflows/integration-tests.yml vendored Normal file
View File

@@ -0,0 +1,31 @@
name: Integration Tests
on: push
jobs:
test-commit-works:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
ref: master
- name: Create Remote Branch
run: |
git checkout -b ci-test
git push origin ci-test
git checkout master
- name: Add Files
run: touch {a,b,c}.txt
- name: Run git-auto-commit
id: "auto-commit-action"
uses: ./
with:
branch: ci-test
commit_message: Message
- name: Delete Branch
run: git push -d origin ci-test

View File

@@ -4,12 +4,26 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
## [Unreleased](https://github.com/stefanzweifel/git-auto-commit-action/compare/v4.6.0...HEAD)
## [Unreleased](https://github.com/stefanzweifel/git-auto-commit-action/compare/v4.7.2...HEAD)
> TBD
## [v4.7.0](https://github.com/stefanzweifel/git-auto-commit-action/compare/v4.6.0...v4.7.0) - 2020-10-11
## [v4.7.2](https://github.com/stefanzweifel/git-auto-commit-action/compare/v4.7.1...v4.7.2) - 2020-10-24
This release basically reverts the Action to the state of `v4.6.0`.
### Changed
- Revert change to fix git-checkout with special characters in branch names [#122](https://github.com/stefanzweifel/git-auto-commit-action/pull/122)
## [v4.7.1](https://github.com/stefanzweifel/git-auto-commit-action/compare/v4.7.0...v4.7.1) - 2020-10-22
### Removed
- Remove `checkout_options` as it broke everything [#120](https://github.com/stefanzweifel/git-auto-commit-action/pull/120/)
## [v4.7.0](https://github.com/stefanzweifel/git-auto-commit-action/compare/v4.6.0...v4.7.0) - 2020-10-21
### Added
- Add `checkout_options` [#115](https://github.com/stefanzweifel/git-auto-commit-action/pull/115)

View File

@@ -5,6 +5,9 @@
<a href="https://github.com/stefanzweifel/git-auto-commit-action/actions?query=workflow%3Atests">
<img src="https://github.com/stefanzweifel/git-auto-commit-action/workflows/tests/badge.svg" alt="">
</a>
<a href="https://github.com/stefanzweifel/git-auto-commit-action/actions?query=workflow%3A%22Integration+Tests%22">
<img src="https://github.com/stefanzweifel/git-auto-commit-action/workflows/Integration%20Tests/badge.svg" alt="">
</a>
This GitHub Action automatically commits files which have been changed during a Workflow run and pushes the commit back to GitHub.
The default committer is "GitHub Actions <actions@github.com>", and the default author of the commit is "Your GitHub Username <github_username@users.noreply.github.com>".
@@ -53,9 +56,6 @@ Add the following step at the end of your job, after other steps that might add
# Optional: Disable dirty check and always try to create a commit and push
skip_dirty_check: true
# Optional: Allows you to update how the repo is checked out
checkout_options: '-q --force -b'
```
## Example

View File

@@ -44,10 +44,6 @@ inputs:
description: Push options (eg. --force)
required: false
default: ''
checkout_options:
description: Checkout options (eg. --branch)
required: false
default: ''
skip_dirty_check:
description: Skip the check if the git repository is dirty and always try to create a commit.
required: false

View File

@@ -43,11 +43,9 @@ _switch_to_branch() {
# Fetch remote to make sure that repo can be switched to the right branch.
git fetch;
# shellcheck disable=SC2206
INPUT_CHECKOUT_OPTIONS_ARRAY=( $INPUT_CHECKOUT_OPTIONS );
# Switch to branch from current Workflow run
git checkout ${INPUT_CHECKOUT_OPTIONS:+"${INPUT_CHECKOUT_OPTIONS_ARRAY[@]}"} "$INPUT_BRANCH" --;
# shellcheck disable=SC2086
git checkout $INPUT_BRANCH;
}
_add_files() {

View File

@@ -32,7 +32,6 @@ setup() {
export INPUT_COMMIT_AUTHOR="Test Suite <test@users.noreply.github.com>"
export INPUT_TAGGING_MESSAGE=""
export INPUT_PUSH_OPTIONS=""
export INPUT_CHECKOUT_OPTIONS=""
export INPUT_SKIP_DIRTY_CHECK=false
skipIfNot "$BATS_TEST_DESCRIPTION"
@@ -72,7 +71,7 @@ main() {
shellmock_expect git --type partial --output " M new-file-1.txt M new-file-2.txt M new-file-3.txt" --match "status"
shellmock_expect git --type exact --match "fetch"
shellmock_expect git --type exact --match "checkout master --"
shellmock_expect git --type exact --match "checkout master"
shellmock_expect git --type partial --match "add ."
shellmock_expect git --type partial --match '-c'
shellmock_expect git --type partial --match 'push --set-upstream origin'
@@ -100,7 +99,7 @@ main() {
shellmock_verify
[ "${capture[0]}" = "git-stub status -s -- ." ]
[ "${capture[1]}" = "git-stub fetch" ]
[ "${capture[2]}" = "git-stub checkout master --" ]
[ "${capture[2]}" = "git-stub checkout master" ]
[ "${capture[3]}" = "git-stub add ." ]
[ "${capture[4]}" = "git-stub -c user.name=Test Suite -c user.email=test@github.com commit -m Commit Message --author=Test Suite <test@users.noreply.github.com>" ]
[ "${capture[5]}" = "git-stub push --set-upstream origin HEAD:master --tags" ]
@@ -112,7 +111,7 @@ main() {
shellmock_expect git --type exact --match "status -s ."
shellmock_expect git --type exact --match "fetch"
shellmock_expect git --type exact --match "checkout master --"
shellmock_expect git --type exact --match "checkout master"
shellmock_expect git --type exact --match "add ."
shellmock_expect git --type partial --match '-c'
shellmock_expect git --type partial --match 'push origin'
@@ -124,7 +123,7 @@ main() {
shellmock_verify
[ "${capture[0]}" = "git-stub status -s -- ." ]
[ "${capture[1]}" = "git-stub fetch" ]
[ "${capture[2]}" = "git-stub checkout master --" ]
[ "${capture[2]}" = "git-stub checkout master" ]
[ "${capture[3]}" = "git-stub add ." ]
[ "${capture[4]}" = "git-stub -c user.name=Test Suite -c user.email=test@github.com commit -m Commit Message --author=Test Suite <test@users.noreply.github.com>" ]
[ "${capture[5]}" = "git-stub push --set-upstream origin HEAD:master --tags" ]
@@ -149,7 +148,7 @@ main() {
shellmock_expect git --type partial --output " M new-file-1.html M new-file-2.html" --match "status"
shellmock_expect git --type exact --match "fetch"
shellmock_expect git --type exact --match "checkout master --"
shellmock_expect git --type exact --match "checkout master"
shellmock_expect git --type partial --match "add"
shellmock_expect git --type partial --match '-c'
shellmock_expect git --type partial --match 'push --set-upstream origin'
@@ -168,7 +167,7 @@ main() {
shellmock_verify
[ "${capture[0]}" = "git-stub status -s -- a.txt b.txt c.txt new-file-1.html new-file-2.html" ]
[ "${capture[1]}" = "git-stub fetch" ]
[ "${capture[2]}" = "git-stub checkout master --" ]
[ "${capture[2]}" = "git-stub checkout master" ]
[ "${capture[3]}" = "git-stub add a.txt b.txt c.txt new-file-1.html new-file-2.html" ]
[ "${capture[4]}" = "git-stub -c user.name=Test Suite -c user.email=test@github.com commit -m Commit Message --author=Test Suite <test@users.noreply.github.com>" ]
[ "${capture[5]}" = "git-stub push --set-upstream origin HEAD:master --tags" ]
@@ -182,7 +181,7 @@ main() {
shellmock_expect git --type partial --output " M new-file-1.txt M new-file-2.txt" --match "status"
shellmock_expect git --type exact --match "fetch"
shellmock_expect git --type exact --match "checkout master --"
shellmock_expect git --type exact --match "checkout master"
shellmock_expect git --type partial --match "add"
shellmock_expect git --type partial --match '-c'
shellmock_expect git --type partial --match 'push --set-upstream origin'
@@ -199,7 +198,7 @@ main() {
shellmock_verify
[ "${capture[0]}" = "git-stub status -s -- ." ]
[ "${capture[1]}" = "git-stub fetch" ]
[ "${capture[2]}" = "git-stub checkout master --" ]
[ "${capture[2]}" = "git-stub checkout master" ]
[ "${capture[3]}" = "git-stub add ." ]
[ "${capture[4]}" = "git-stub -c user.name=Test Suite -c user.email=test@github.com commit -m Commit Message --author=Test Suite <test@users.noreply.github.com> --no-verify --signoff" ]
[ "${capture[5]}" = "git-stub push --set-upstream origin HEAD:master --tags" ]
@@ -215,7 +214,7 @@ main() {
shellmock_expect git --type partial --output " M new-file-1.txt M new-file-2.txt" --match "status"
shellmock_expect git --type exact --match "fetch"
shellmock_expect git --type exact --match "checkout master --"
shellmock_expect git --type exact --match "checkout master"
shellmock_expect git --type partial --match "add"
shellmock_expect git --type partial --match '-c'
shellmock_expect git --type partial --match 'push --set-upstream origin'
@@ -232,7 +231,7 @@ main() {
shellmock_verify
[ "${capture[0]}" = "git-stub status -s -- ." ]
[ "${capture[1]}" = "git-stub fetch" ]
[ "${capture[2]}" = "git-stub checkout master --" ]
[ "${capture[2]}" = "git-stub checkout master" ]
[ "${capture[3]}" = "git-stub add ." ]
[ "${capture[4]}" = "git-stub -c user.name=A Single Test -c user.email=single-test@github.com commit -m Commit Message --author=A Single Test <single@users.noreply.github.com>" ]
[ "${capture[5]}" = "git-stub push --set-upstream origin HEAD:master --tags" ]
@@ -246,7 +245,7 @@ main() {
shellmock_expect git --type partial --output " M new-file-1.txt M new-file-2.txt M new-file-3.txt" --match "status"
shellmock_expect git --type exact --match "fetch"
shellmock_expect git --type exact --match "checkout master --"
shellmock_expect git --type exact --match "checkout master"
shellmock_expect git --type partial --match "add ."
shellmock_expect git --type partial --match '-c'
shellmock_expect git --type partial --match 'push --set-upstream origin'
@@ -266,7 +265,7 @@ main() {
shellmock_verify
[ "${capture[0]}" = "git-stub status -s -- ." ]
[ "${capture[1]}" = "git-stub fetch" ]
[ "${capture[2]}" = "git-stub checkout master --" ]
[ "${capture[2]}" = "git-stub checkout master" ]
[ "${capture[3]}" = "git-stub add ." ]
[ "${capture[4]}" = "git-stub -c user.name=Test Suite -c user.email=test@github.com commit -m Commit Message --author=Test Suite <test@users.noreply.github.com>" ]
[ "${capture[5]}" = "git-stub -c user.name=Test Suite -c user.email=test@github.com tag -a v1.0.0 -m v1.0.0" ]
@@ -282,7 +281,7 @@ main() {
shellmock_expect git --type partial --output " M new-file-1.txt M new-file-2.txt M new-file-3.txt" --match "status"
shellmock_expect git --type exact --match "fetch"
shellmock_expect git --type exact --match "checkout master --"
shellmock_expect git --type exact --match "checkout master"
shellmock_expect git --type partial --match "add ."
shellmock_expect git --type partial --match '-c'
shellmock_expect git --type partial --match 'push --set-upstream origin'
@@ -302,46 +301,13 @@ main() {
shellmock_verify
[ "${capture[0]}" = "git-stub status -s -- ." ]
[ "${capture[1]}" = "git-stub fetch" ]
[ "${capture[2]}" = "git-stub checkout master --" ]
[ "${capture[2]}" = "git-stub checkout master" ]
[ "${capture[3]}" = "git-stub add ." ]
[ "${capture[4]}" = "git-stub -c user.name=Test Suite -c user.email=test@github.com commit -m Commit Message --author=Test Suite <test@users.noreply.github.com>" ]
[ "${capture[5]}" = "git-stub push --set-upstream origin HEAD:master --tags --force" ]
}
@test "git-checkout-options-are-applied" {
INPUT_CHECKOUT_OPTIONS="-b --progress"
touch "${test_repository}"/new-file-{1,2,3}.txt
shellmock_expect git --type partial --output " M new-file-1.txt M new-file-2.txt M new-file-3.txt" --match "status"
shellmock_expect git --type exact --match "fetch"
shellmock_expect git --type exact --match "checkout -b --progress master --"
shellmock_expect git --type partial --match "add ."
shellmock_expect git --type partial --match '-c'
shellmock_expect git --type partial --match 'push --set-upstream origin'
run main
echo "$output"
# Success Exit Code
[ "$status" = 0 ]
[ "${lines[10]}" = "::debug::Push commit to remote branch master" ]
shellmock_verify
[ "${capture[0]}" = "git-stub status -s -- ." ]
[ "${capture[1]}" = "git-stub fetch" ]
[ "${capture[2]}" = "git-stub checkout -b --progress master --" ]
[ "${capture[3]}" = "git-stub add ." ]
[ "${capture[4]}" = "git-stub -c user.name=Test Suite -c user.email=test@github.com commit -m Commit Message --author=Test Suite <test@users.noreply.github.com>" ]
[ "${capture[5]}" = "git-stub push --set-upstream origin HEAD:master --tags" ]
}
@test "can-checkout-different-branch" {
INPUT_BRANCH="foo"
@@ -350,7 +316,7 @@ main() {
shellmock_expect git --type partial --output " M new-file-1.txt M new-file-2.txt M new-file-3.txt" --match "status"
shellmock_expect git --type exact --match "fetch"
shellmock_expect git --type exact --match "checkout foo --"
shellmock_expect git --type exact --match "checkout foo"
shellmock_expect git --type partial --match "add ."
shellmock_expect git --type partial --match '-c'
shellmock_expect git --type partial --match 'push --set-upstream origin'
@@ -378,7 +344,7 @@ main() {
shellmock_verify
[ "${capture[0]}" = "git-stub status -s -- ." ]
[ "${capture[1]}" = "git-stub fetch" ]
[ "${capture[2]}" = "git-stub checkout foo --" ]
[ "${capture[2]}" = "git-stub checkout foo" ]
[ "${capture[3]}" = "git-stub add ." ]
[ "${capture[4]}" = "git-stub -c user.name=Test Suite -c user.email=test@github.com commit -m Commit Message --author=Test Suite <test@users.noreply.github.com>" ]
[ "${capture[5]}" = "git-stub push --set-upstream origin HEAD:foo --tags" ]
@@ -393,7 +359,7 @@ main() {
shellmock_expect git --type partial --output " M new-file-1.txt M new-file-2.txt M new-file-3.txt" --match "status"
shellmock_expect git --type exact --match "fetch"
shellmock_expect git --type exact --match "checkout --"
shellmock_expect git --type exact --match "checkout"
shellmock_expect git --type partial --match "add ."
shellmock_expect git --type partial --match '-c'
shellmock_expect git --type partial --match 'push origin'
@@ -421,7 +387,7 @@ main() {
shellmock_verify
[ "${capture[0]}" = "git-stub status -s -- ." ]
[ "${capture[1]}" = "git-stub fetch" ]
[ "${capture[2]}" = "git-stub checkout --" ]
[ "${capture[2]}" = "git-stub checkout" ]
[ "${capture[3]}" = "git-stub add ." ]
[ "${capture[4]}" = "git-stub -c user.name=Test Suite -c user.email=test@github.com commit -m Commit Message --author=Test Suite <test@users.noreply.github.com>" ]
[ "${capture[5]}" = "git-stub push origin" ]
@@ -436,7 +402,7 @@ main() {
shellmock_expect git --type partial --output " M new-file-1.txt M new-file-2.txt M new-file-3.txt" --match "status"
shellmock_expect git --type exact --match "fetch"
shellmock_expect git --type exact --match "checkout --"
shellmock_expect git --type exact --match "checkout"
shellmock_expect git --type partial --match "add ."
shellmock_expect git --type partial --match '-c'
shellmock_expect git --type partial --match 'push origin'
@@ -464,7 +430,7 @@ main() {
shellmock_verify
[ "${capture[0]}" = "git-stub status -s -- ." ]
[ "${capture[1]}" = "git-stub fetch" ]
[ "${capture[2]}" = "git-stub checkout --" ]
[ "${capture[2]}" = "git-stub checkout" ]
[ "${capture[3]}" = "git-stub add ." ]
[ "${capture[4]}" = "git-stub -c user.name=Test Suite -c user.email=test@github.com commit -m Commit Message --author=Test Suite <test@users.noreply.github.com>" ]
[ "${capture[5]}" = "git-stub -c user.name=Test Suite -c user.email=test@github.com tag -a v2.0.0 -m v2.0.0" ]