diff --git a/README.md b/README.md index b4eaaec..cf974c3 100644 --- a/README.md +++ b/README.md @@ -11,64 +11,82 @@ Please bear in mind: files in the target repository's specified directory are de There are different variables to setup the behaviour: ## Inputs + ### `source-directory` (argument) + From the repository that this Git Action is executed the directory that contains the files to be pushed into the repository. ### `destination-github-username` (argument) + For the repository `https://github.com/cpina/push-to-another-repository-output` is `cpina`. ### `destination-repository-name` (argument) + For the repository `https://github.com/cpina/push-to-another-repository-output` is `push-to-another-repository-output` -*Warning:* this Github Action currently deletes all the files and directories in the destination repository. The idea is to copy from an `output` directory into the `destination-repository-name` having a copy without any previous files there. +_Warning:_ this Github Action currently deletes all the files and directories in the destination repository. The idea is to copy from an `output` directory into the `destination-repository-name` having a copy without any previous files there. ### `user-email` (argument) + The email that will be used for the commit in the destination-repository-name. ### `user-name` (argument) [optional] + The name that will be used for the commit in the destination-repository-name. If not specified, the `destination-github-username` will be used instead. ### `destination-repository-username` (argument) [optional] + The Username/Organization for the destination repository, if different from `destination-github-username`. For the repository `https://github.com/cpina/push-to-another-repository-output` is `cpina`. ### `target-branch` (argument) [optional] + The branch name for the destination repository. It defaults to `main`. ### `commit-message` (argument) [optional] + The commit message to be used in the output repository. Optional and defaults to "Update from $REPOSITORY_URL@commit". The string `ORIGIN_COMMIT` is replaced by `$REPOSITORY_URL@commit`. ### `target-directory` (argument) [optional] -The directory to wipe and replace in the target repository. Defaults to wiping the entire repository + +The directory to wipe and replace in the target repository. Defaults to wiping the entire repository + +### `commit-tag` (argument) [optional] + +The name that you want to use to tag the current commit. ### `API_TOKEN_GITHUB` (environment) + E.g.: - `API_TOKEN_GITHUB: ${{ secrets.API_TOKEN_GITHUB }}` +`API_TOKEN_GITHUB: ${{ secrets.API_TOKEN_GITHUB }}` Generate your personal token following the steps: -* Go to the Github Settings (on the right hand side on the profile picture) -* On the left hand side pane click on "Developer Settings" -* Click on "Personal Access Tokens" (also available at https://github.com/settings/tokens) -* Generate a new token, choose "Repo". Copy the token. + +- Go to the Github Settings (on the right hand side on the profile picture) +- On the left hand side pane click on "Developer Settings" +- Click on "Personal Access Tokens" (also available at https://github.com/settings/tokens) +- Generate a new token, choose "Repo". Copy the token. Then make the token available to the Github Action following the steps: -* Go to the Github page for the repository that you push from, click on "Settings" -* On the left hand side pane click on "Secrets" -* Click on "Add a new secret" and name it "API_TOKEN_GITHUB" + +- Go to the Github page for the repository that you push from, click on "Settings" +- On the left hand side pane click on "Secrets" +- Click on "Add a new secret" and name it "API_TOKEN_GITHUB" ## Example usage + ```yaml - - name: Pushes to another repository - uses: cpina/github-action-push-to-another-repository@main - env: - API_TOKEN_GITHUB: ${{ secrets.API_TOKEN_GITHUB }} - with: - source-directory: 'output' - destination-github-username: 'cpina' - destination-repository-name: 'pandoc-test-output' - user-email: carles3@pina.cat - target-branch: main +- name: Pushes to another repository + uses: cpina/github-action-push-to-another-repository@main + env: + API_TOKEN_GITHUB: ${{ secrets.API_TOKEN_GITHUB }} + with: + source-directory: "output" + destination-github-username: "cpina" + destination-repository-name: "pandoc-test-output" + user-email: carles3@pina.cat + target-branch: main ``` Working example: diff --git a/action.yml b/action.yml index 815415f..17f0e95 100644 --- a/action.yml +++ b/action.yml @@ -48,6 +48,9 @@ inputs: description: '[Optional] The directory to wipe and replace in the target repository' default: '' required: false + commit-tag: + description: '[Optional] The tag that should be applied to the commit' + required: false runs: using: docker @@ -64,6 +67,7 @@ runs: - '${{ inputs.target-branch }}' - '${{ inputs.commit-message }}' - '${{ inputs.target-directory }}' + - '${{ inputs.commit-tag }}' branding: icon: git-commit color: green diff --git a/entrypoint.sh b/entrypoint.sh index 82ad593..51d2734 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -15,6 +15,7 @@ DESTINATION_REPOSITORY_USERNAME="${8}" TARGET_BRANCH="${9}" COMMIT_MESSAGE="${10}" TARGET_DIRECTORY="${11}" +COMMIT_TAG="${12}" if [ -z "$DESTINATION_REPOSITORY_USERNAME" ] then @@ -118,3 +119,11 @@ git diff-index --quiet HEAD || git commit --message "$COMMIT_MESSAGE" echo "[+] Pushing git commit" # --set-upstream: sets de branch when pushing to a branch that does not exist git push "https://$USER_NAME:$API_TOKEN_GITHUB@$GITHUB_SERVER/$DESTINATION_REPOSITORY_USERNAME/$DESTINATION_REPOSITORY_NAME.git" --set-upstream "$TARGET_BRANCH" + +# Tag commit and push if it is set +if [ ! -z "$COMMIT_TAG" ] +then + echo "[+] git tag" + git tag $COMMIT_TAG + git push "https://$USER_NAME:$API_TOKEN_GITHUB@$GITHUB_SERVER/$DESTINATION_REPOSITORY_USERNAME/$DESTINATION_REPOSITORY_NAME.git" --tags +fi