diff --git a/README.md b/README.md index 9f3f1f9..bacf56b 100644 --- a/README.md +++ b/README.md @@ -139,17 +139,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. | -| 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 }}`. | +| 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/action.yml b/action.yml index 1b54480..2d20c6f 100644 --- a/action.yml +++ b/action.yml @@ -32,6 +32,10 @@ inputs: atomic: description: 'Determines if atomic push is used, default true' required: false + push_to_submodules: + description: 'Determines if --recurse-submodules= is used. The value defines the used strategy' + required: false + default: 'on-demand' tags: description: 'Determines if --tags is used' required: false diff --git a/start.sh b/start.sh index b7fdb8a..40f89b2 100644 --- a/start.sh +++ b/start.sh @@ -7,6 +7,7 @@ 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='' REPOSITORY=${INPUT_REPOSITORY:-$GITHUB_REPOSITORY} @@ -38,6 +39,10 @@ if ${INPUT_TAGS}; then _TAGS='--tags' fi +if [ -n "${INPUT_PUSH_TO_SUBMODULES}" ]; then + _INPUT_PUSH_TO_SUBMODULES="--recurse-submodules=${INPUT_PUSH_TO_SUBMODULES}" +fi + cd ${INPUT_DIRECTORY} if ${INPUT_SSH}; then @@ -52,4 +57,4 @@ if ! ${INPUT_FORCE_WITH_LEASE}; then ADDITIONAL_PARAMETERS="${remote_repo} HEAD:${INPUT_BRANCH}" fi -git push $ADDITIONAL_PARAMETERS $_ATOMIC_OPTION --follow-tags $_FORCE_OPTION $_TAGS; +git push $ADDITIONAL_PARAMETERS $_INPUT_PUSH_TO_SUBMODULES $_ATOMIC_OPTION --follow-tags $_FORCE_OPTION $_TAGS;