diff --git a/README.md b/README.md index 148f1ed..30578e8 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,8 @@ jobs: | `git_email` | Email address used to configure git (for git operations) | `github-actions[bot]@users.noreply.github.com` | | `push` | Define if the changes should be pushed to the branch. | true | | `commit` | Define if the changes should be committed to the branch. | true | -| | +| `commitizen_version` | Specify the version to be used by commitizen. Eg: `2.21.0` | latest | +| `changelog` | Create changelog when bumping the version | true | ## Outputs diff --git a/action.yml b/action.yml index 219a109..a66a623 100644 --- a/action.yml +++ b/action.yml @@ -54,3 +54,7 @@ inputs: description: 'Email address used to configure git (for git operations)' required: false default: 'github-actions[bot]@users.noreply.github.com' + commitizen_version: + description: 'Specify the version to be used by commitizen' + required: false + default: 'latest' diff --git a/entrypoint.sh b/entrypoint.sh index ad45cea..580d80b 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -4,6 +4,9 @@ if [ $INPUT_DRY_RUN ]; then INPUT_DRY_RUN='--dry-run'; else INPUT_DRY_RUN=''; fi if [ $INPUT_CHANGELOG ]; then INPUT_CHANGELOG='--changelog'; else INPUT_CHANGELOG=''; fi if [ $INPUT_PRERELEASE ]; then INPUT_PRERELEASE="--prerelease $INPUT_PRERELEASE"; else INPUT_PRERELEASE=''; fi if [ "$INPUT_COMMIT" == 'false' ]; then INPUT_COMMIT='--files-only'; else INPUT_COMMIT=''; fi +if [ "$INPUT_COMMITIZEN_VERSION" == 'latest' ]; then INPUT_COMMITIZEN_VERSION="commitizen"; else INPUT_COMMITIZEN_VERSION="commitizen==$INPUT_COMMITIZEN_VERSION"; fi + + CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD) INPUT_BRANCH=${INPUT_BRANCH:-$CURRENT_BRANCH} INPUT_EXTRA_REQUIREMENTS=${INPUT_EXTRA_REQUIREMENTS:-''} @@ -13,46 +16,44 @@ REPOSITORY=${INPUT_REPOSITORY:-$GITHUB_REPOSITORY} set -e [ -z "${INPUT_GITHUB_TOKEN}" ] && { - echo 'Missing input "github_token: ${{ secrets.GITHUB_TOKEN }}".'; - exit 1; -}; + echo 'Missing input "github_token: ${{ secrets.GITHUB_TOKEN }}".' + exit 1 +} echo "Repository: $REPOSITORY" echo "Actor: $GITHUB_ACTOR" echo "Installing requirements..." -pip install commitizen $INPUT_EXTRA_REQUIREMENTS +pip install "$INPUT_COMMITIZEN_VERSION" $INPUT_EXTRA_REQUIREMENTS echo "Commitizen version:" cz version - echo "Configuring git user and email..." git config --local user.name "$INPUT_GIT_NAME" git config --local user.email "$INPUT_GIT_EMAIL" echo "Git name: $(git config --get user.name)" echo "Git email: $(git config --get user.email)" - echo "Running cz: $INPUT_DRY_RUN $INPUT_COMMIT $INPUT_CHANGELOG $INPUT_PRERELEASE" -if [ $INPUT_CHANGELOG_INCREMENT_FILENAME ]; -then - cz bump --yes --changelog-to-stdout $INPUT_COMMIT $INPUT_DRY_RUN $INPUT_CHANGELOG $INPUT_PRERELEASE > $INPUT_CHANGELOG_INCREMENT_FILENAME; +if [ $INPUT_CHANGELOG_INCREMENT_FILENAME ]; then + cz bump --yes --changelog-to-stdout $INPUT_COMMIT $INPUT_DRY_RUN $INPUT_CHANGELOG $INPUT_PRERELEASE >$INPUT_CHANGELOG_INCREMENT_FILENAME else - cz bump --yes $INPUT_DRY_RUN $INPUT_COMMIT $INPUT_CHANGELOG $INPUT_PRERELEASE; + cz bump --yes $INPUT_DRY_RUN $INPUT_COMMIT $INPUT_CHANGELOG $INPUT_PRERELEASE fi -export REV=`cz version --project` -echo "REVISION=$REV" >> $GITHUB_ENV +REV=$(cz version --project) +export REV + +echo "REVISION=$REV" >>$GITHUB_ENV echo "::set-output name=version::$REV" -if [ "$INPUT_PUSH" == "true" ]; -then +if [ "$INPUT_PUSH" == "true" ]; then echo "Pushing to branch..." remote_repo="https://${GITHUB_ACTOR}:${INPUT_GITHUB_TOKEN}@github.com/${REPOSITORY}.git" git pull ${remote_repo} ${INPUT_BRANCH} - git push "${remote_repo}" HEAD:${INPUT_BRANCH} --follow-tags --tags; + git push "${remote_repo}" HEAD:${INPUT_BRANCH} --follow-tags --tags else echo "Not pushing" fi