mirror of
https://github.com/stefanzweifel/git-auto-commit-action.git
synced 2025-05-23 23:19:43 +08:00
Merge branch 'master' into v6-next
This commit is contained in:
commit
739fd03b2d
13
CHANGELOG.md
13
CHANGELOG.md
@ -5,10 +5,21 @@ 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/)
|
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).
|
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/v5.1.0...HEAD)
|
## [Unreleased](https://github.com/stefanzweifel/git-auto-commit-action/compare/v5.2.0...HEAD)
|
||||||
|
|
||||||
> TBD
|
> TBD
|
||||||
|
|
||||||
|
## [v5.2.0](https://github.com/stefanzweifel/git-auto-commit-action/compare/v5.1.0...v5.2.0) - 2025-04-19
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Add `create_git_tag_only` option to skip commiting and always create a git-tag. ([#364](https://github.com/stefanzweifel/git-auto-commit-action/pull/364)) [@zMynxx](https://github.com/@zMynxx)
|
||||||
|
- Add Test for `create_git_tag_only` feature ([#367](https://github.com/stefanzweifel/git-auto-commit-action/pull/367)) [@stefanzweifel](https://github.com/@stefanzweifel)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- docs: Update README.md per #354 ([#361](https://github.com/stefanzweifel/git-auto-commit-action/pull/361)) [@rasa](https://github.com/@rasa)
|
||||||
|
|
||||||
## [v5.1.0](https://github.com/stefanzweifel/git-auto-commit-action/compare/v5.0.1...v5.1.0) - 2025-01-11
|
## [v5.1.0](https://github.com/stefanzweifel/git-auto-commit-action/compare/v5.0.1...v5.1.0) - 2025-01-11
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
@ -84,7 +84,7 @@ The following is an extended example with all available options.
|
|||||||
# Optional commit user and author settings
|
# Optional commit user and author settings
|
||||||
commit_user_name: My GitHub Actions Bot # defaults to "github-actions[bot]"
|
commit_user_name: My GitHub Actions Bot # defaults to "github-actions[bot]"
|
||||||
commit_user_email: my-github-actions-bot@example.org # defaults to "41898282+github-actions[bot]@users.noreply.github.com"
|
commit_user_email: my-github-actions-bot@example.org # defaults to "41898282+github-actions[bot]@users.noreply.github.com"
|
||||||
commit_author: Author <actions@github.com> # defaults to "username <username@users.noreply.github.com>", where "username" belongs to the author of the commit that triggered the run
|
commit_author: Author <actions@github.com> # defaults to "username <numeric_id+username@users.noreply.github.com>", where "numeric_id" and "username" belong to the author of the commit that triggered the run
|
||||||
|
|
||||||
# Optional. Tag name being created in the local repository and
|
# Optional. Tag name being created in the local repository and
|
||||||
# pushed to remote repository and defined branch.
|
# pushed to remote repository and defined branch.
|
||||||
@ -108,6 +108,10 @@ The following is an extended example with all available options.
|
|||||||
# Optional. Prevents the shell from expanding filenames.
|
# Optional. Prevents the shell from expanding filenames.
|
||||||
# Details: https://www.gnu.org/software/bash/manual/html_node/Filename-Expansion.html
|
# Details: https://www.gnu.org/software/bash/manual/html_node/Filename-Expansion.html
|
||||||
disable_globbing: true
|
disable_globbing: true
|
||||||
|
|
||||||
|
# Optional. Creates a new tag and pushes it to remote without creating a commit.
|
||||||
|
# Skips dirty check and changed files. Must be used with `tagging_message`.
|
||||||
|
create_git_tag_only: false
|
||||||
```
|
```
|
||||||
|
|
||||||
Please note that the Action depends on `bash`. If you're using the Action in a job in combination with a custom Docker container, make sure that `bash` is installed.
|
Please note that the Action depends on `bash`. If you're using the Action in a job in combination with a custom Docker container, make sure that `bash` is installed.
|
||||||
@ -159,6 +163,7 @@ You can use these outputs to trigger other Actions in your Workflow run based on
|
|||||||
|
|
||||||
- `changes_detected`: Returns either "true" or "false" if the repository was dirty and files have changed.
|
- `changes_detected`: Returns either "true" or "false" if the repository was dirty and files have changed.
|
||||||
- `commit_hash`: Returns the full hash of the commit if one was created.
|
- `commit_hash`: Returns the full hash of the commit if one was created.
|
||||||
|
- `create_git_tag_only`: Returns either "true" or "false" if a tag was created, when `create_git_tag_only` was used.
|
||||||
|
|
||||||
**⚠️ When using outputs, the step needs to be given an id. See example below.**
|
**⚠️ When using outputs, the step needs to be given an id. See example below.**
|
||||||
|
|
||||||
|
@ -59,6 +59,10 @@ inputs:
|
|||||||
disable_globbing:
|
disable_globbing:
|
||||||
description: Stop the shell from expanding filenames (https://www.gnu.org/software/bash/manual/html_node/Filename-Expansion.html)
|
description: Stop the shell from expanding filenames (https://www.gnu.org/software/bash/manual/html_node/Filename-Expansion.html)
|
||||||
default: false
|
default: false
|
||||||
|
create_git_tag_only:
|
||||||
|
description: Perform a clean git tag and push, without commiting anything
|
||||||
|
required: false
|
||||||
|
default: false
|
||||||
internal_git_binary:
|
internal_git_binary:
|
||||||
description: Internal use only! Path to git binary used to check if git is available. (Don't change this!)
|
description: Internal use only! Path to git binary used to check if git is available. (Don't change this!)
|
||||||
default: git
|
default: git
|
||||||
@ -68,6 +72,8 @@ outputs:
|
|||||||
description: Value is "true", if the repository was dirty and file changes have been detected. Value is "false", if no changes have been detected.
|
description: Value is "true", if the repository was dirty and file changes have been detected. Value is "false", if no changes have been detected.
|
||||||
commit_hash:
|
commit_hash:
|
||||||
description: Full hash of the created commit. Only present if the "changes_detected" output is "true".
|
description: Full hash of the created commit. Only present if the "changes_detected" output is "true".
|
||||||
|
create_git_tag_only:
|
||||||
|
description: Value is "true", if a git tag was created using the `create_git_tag_only`-input.
|
||||||
|
|
||||||
runs:
|
runs:
|
||||||
using: 'node20'
|
using: 'node20'
|
||||||
|
@ -35,7 +35,12 @@ _main() {
|
|||||||
|
|
||||||
_check_if_repository_is_in_detached_state
|
_check_if_repository_is_in_detached_state
|
||||||
|
|
||||||
if _git_is_dirty || "$INPUT_SKIP_DIRTY_CHECK"; then
|
if "$INPUT_CREATE_GIT_TAG_ONLY"; then
|
||||||
|
_log "debug" "Create git tag only";
|
||||||
|
_set_github_output "create_git_tag_only" "true"
|
||||||
|
_tag_commit
|
||||||
|
_push_to_github
|
||||||
|
elif _git_is_dirty || "$INPUT_SKIP_DIRTY_CHECK"; then
|
||||||
|
|
||||||
_set_github_output "changes_detected" "true"
|
_set_github_output "changes_detected" "true"
|
||||||
|
|
||||||
|
@ -21,6 +21,7 @@ setup() {
|
|||||||
export FAKE_DEFAULT_BRANCH=$(git config init.defaultBranch)
|
export FAKE_DEFAULT_BRANCH=$(git config init.defaultBranch)
|
||||||
|
|
||||||
# Set default INPUT variables used by the GitHub Action
|
# Set default INPUT variables used by the GitHub Action
|
||||||
|
export INPUT_CREATE_GIT_TAG_ONLY=false
|
||||||
export INPUT_REPOSITORY="${FAKE_LOCAL_REPOSITORY}"
|
export INPUT_REPOSITORY="${FAKE_LOCAL_REPOSITORY}"
|
||||||
export INPUT_COMMIT_MESSAGE="Commit Message"
|
export INPUT_COMMIT_MESSAGE="Commit Message"
|
||||||
export INPUT_BRANCH="${FAKE_DEFAULT_BRANCH}"
|
export INPUT_BRANCH="${FAKE_DEFAULT_BRANCH}"
|
||||||
@ -1109,3 +1110,54 @@ END
|
|||||||
assert_failure;
|
assert_failure;
|
||||||
assert_line "::error::Repository is in detached HEAD state. Please make sure you check out a branch. Adjust the `ref` input accordingly."
|
assert_line "::error::Repository is in detached HEAD state. Please make sure you check out a branch. Adjust the `ref` input accordingly."
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@test "it creates a tag if create_git_tag_only is set to true and a message has been supplied" {
|
||||||
|
INPUT_CREATE_GIT_TAG_ONLY=true
|
||||||
|
INPUT_TAGGING_MESSAGE=v1.0.0
|
||||||
|
|
||||||
|
run git_auto_commit
|
||||||
|
|
||||||
|
assert_success
|
||||||
|
|
||||||
|
assert_line "::debug::Create git tag only"
|
||||||
|
|
||||||
|
assert_line "::debug::Create tag v1.0.0"
|
||||||
|
refute_line "No tagging message supplied. No tag will be added."
|
||||||
|
|
||||||
|
assert_line "::debug::Apply push options "
|
||||||
|
assert_line "::debug::Push commit to remote branch ${FAKE_DEFAULT_BRANCH}"
|
||||||
|
|
||||||
|
run cat_github_output
|
||||||
|
assert_line "create_git_tag_only=true"
|
||||||
|
refute_line "changes_detected=false"
|
||||||
|
refute_line -e "commit_hash=[0-9a-f]{40}$"
|
||||||
|
|
||||||
|
# Assert a tag v1.0.0 has been created
|
||||||
|
run git tag
|
||||||
|
assert_output v1.0.0
|
||||||
|
|
||||||
|
run git ls-remote --tags --refs
|
||||||
|
assert_output --partial refs/tags/v1.0.0
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "it output no tagging message supplied if no tagging message is set but create_git_tag_only is set to true" {
|
||||||
|
INPUT_CREATE_GIT_TAG_ONLY=true
|
||||||
|
INPUT_TAGGING_MESSAGE=""
|
||||||
|
|
||||||
|
run git_auto_commit
|
||||||
|
|
||||||
|
assert_success
|
||||||
|
|
||||||
|
assert_line "INPUT_TAGGING_MESSAGE: "
|
||||||
|
assert_line "No tagging message supplied. No tag will be added."
|
||||||
|
assert_line "::debug::Create git tag only"
|
||||||
|
|
||||||
|
run cat_github_output
|
||||||
|
assert_line "create_git_tag_only=true"
|
||||||
|
refute_line "changes_detected=false"
|
||||||
|
refute_line -e "commit_hash=[0-9a-f]{40}$"
|
||||||
|
|
||||||
|
# Assert no tag has been created
|
||||||
|
run git tag
|
||||||
|
assert_output ""
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user