diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..85e7c1d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/.idea/ diff --git a/README.md b/README.md index 3accaa5..3ab7ba7 100644 --- a/README.md +++ b/README.md @@ -272,18 +272,18 @@ jobs: ### Inputs -| name | value | default | description | -|--------------------|---------|-----------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| github_token | string | `${{ github.token }}` | [GITHUB_TOKEN](https://docs.github.com/en/actions/security-guides/automatic-token-authentication#using-the-github_token-in-a-workflow)
or a repo scoped
[Personal Access Token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token). | -| ssh | boolean | false | Determines if ssh/ Deploy Keys is used. | -| branch | string | (default) | Destination branch to push changes.
Can be passed in using `${{ github.ref }}`. | -| force | boolean | false | Determines if force push is used. | -| force_with_lease | boolean | false | Determines if force-with-lease push is used. Please specify the corresponding branch inside `ref` section of the checkout action e.g. `ref: ${{ github.head_ref }}`. | -| atomic | boolean | true | Determines if [atomic](https://git-scm.com/docs/git-push#Documentation/git-push.txt---no-atomic) push is used. | -| push_to_submodules | string | 'on-demand' | Determines if --recurse-submodules= is used. The value defines the used strategy. | -| tags | boolean | false | Determines if `--tags` is used. | -| directory | string | '.' | Directory to change to before pushing. | -| repository | string | '' | Repository name.
Default or empty repository name represents
current github repository.
If you want to push to other repository,
you should make a [personal access token](https://github.com/settings/tokens)
and use it as the `github_token` input. | +| name | value | default | description | +|--------------------|---------|-----------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| github_token | string | `${{ github.token }}` | [GITHUB_TOKEN](https://docs.github.com/en/actions/security-guides/automatic-token-authentication#using-the-github_token-in-a-workflow)
or a repo scoped
[Personal Access Token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token). | +| ssh | boolean | false | Determines if ssh/ Deploy Keys is used. | +| branch | string | (default) | Destination branch to push changes.
Can be passed in using `${{ github.ref }}`. | +| force | boolean | false | Determines if force push is used. | +| force_with_lease | boolean | false | Determines if force-with-lease push is used. Please specify the corresponding branch inside `ref` section of the checkout action e.g. `ref: ${{ github.head_ref }}`. Be aware, if you want to update the branch and the corresponding tag please use the `force` parameter instead of the `force_with_lease` option. | +| atomic | boolean | true | Determines if [atomic](https://git-scm.com/docs/git-push#Documentation/git-push.txt---no-atomic) push is used. | +| push_to_submodules | string | 'on-demand' | Determines if --recurse-submodules= is used. The value defines the used strategy. | +| tags | boolean | false | Determines if `--tags` is used. | +| directory | string | '.' | Directory to change to before pushing. | +| repository | string | '' | Repository name.
Default or empty repository name represents
current github repository.
If you want to push to other repository,
you should make a [personal access token](https://github.com/settings/tokens)
and use it as the `github_token` input. | ## Troubleshooting diff --git a/start.sh b/start.sh index c654bf6..7789ed5 100644 --- a/start.sh +++ b/start.sh @@ -6,37 +6,37 @@ INPUT_FORCE=${INPUT_FORCE:-false} INPUT_FORCE_WITH_LEASE=${INPUT_FORCE_WITH_LEASE:-false} INPUT_SSH=${INPUT_SSH:-false} INPUT_TAGS=${INPUT_TAGS:-false} -INPUT_DIRECTORY=${INPUT_DIRECTORY:-'.'} -INPUT_PUSH_TO_SUBMODULES=${INPUT_PUSH_TO_SUBMODULES:-''} -_ATOMIC_OPTION='' -_FORCE_OPTION='' +INPUT_DIRECTORY=${INPUT_DIRECTORY:-"."} +INPUT_PUSH_TO_SUBMODULES=${INPUT_PUSH_TO_SUBMODULES:-""} +_ATOMIC_OPTION="" +_FORCE_OPTION="" REPOSITORY=${INPUT_REPOSITORY:-$GITHUB_REPOSITORY} echo "Push to branch $INPUT_BRANCH"; [ -z "${INPUT_GITHUB_TOKEN}" ] && { - echo 'Missing input "github_token: ${{ secrets.GITHUB_TOKEN }}".'; + echo "Missing input 'github_token: ${{ secrets.GITHUB_TOKEN }}'."; exit 1; }; if ${INPUT_FORCE} && ${INPUT_FORCE_WITH_LEASE}; then - echo 'Please, specify only force or force_with_lease and not both.'; + echo "Please, specify only force or force_with_lease and not both."; exit 1; fi if ${INPUT_ATOMIC}; then - _ATOMIC_OPTION='--atomic' + _ATOMIC_OPTION="--atomic" fi if ${INPUT_FORCE}; then - _FORCE_OPTION='--force' + _FORCE_OPTION="--force" fi if ${INPUT_FORCE_WITH_LEASE}; then - _FORCE_OPTION='--force-with-lease' + _FORCE_OPTION="--force-with-lease" fi if ${INPUT_TAGS}; then - _TAGS='--tags' + _TAGS="--tags" fi if [ -n "${INPUT_PUSH_TO_SUBMODULES}" ]; then @@ -55,4 +55,8 @@ if ! ${INPUT_FORCE_WITH_LEASE}; then ADDITIONAL_PARAMETERS="${remote_repo} HEAD:${INPUT_BRANCH}" fi +if ${INPUT_FORCE_WITH_LEASE} && ${INPUT_TAGS}; then + _ATOMIC_OPTION="" +fi + git push $ADDITIONAL_PARAMETERS $_INPUT_PUSH_TO_SUBMODULES $_ATOMIC_OPTION --follow-tags $_FORCE_OPTION $_TAGS;