|
1 | 1 | #!/bin/bash
|
2 | 2 |
|
3 |
| -if [ $INPUT_DRY_RUN ]; then INPUT_DRY_RUN='--dry-run'; else INPUT_DRY_RUN=''; fi |
4 |
| -if [ $INPUT_CHANGELOG ]; then INPUT_CHANGELOG='--changelog'; else INPUT_CHANGELOG=''; fi |
5 |
| -if [ $INPUT_PRERELEASE ]; then INPUT_PRERELEASE="--prerelease $INPUT_PRERELEASE"; else INPUT_PRERELEASE=''; fi |
6 |
| -if [ "$INPUT_COMMIT" == 'false' ]; then INPUT_COMMIT='--files-only'; else INPUT_COMMIT=''; fi |
7 |
| -if [ "$INPUT_COMMITIZEN_VERSION" == 'latest' ]; then INPUT_COMMITIZEN_VERSION="commitizen"; else INPUT_COMMITIZEN_VERSION="commitizen==$INPUT_COMMITIZEN_VERSION"; fi |
8 |
| -if [ -n "$INPUT_NO_RAISE" ]; then INPUT_NO_RAISE="--no-raise $INPUT_NO_RAISE"; else INPUT_NO_RAISE=''; fi |
9 |
| - |
10 |
| -CURRENT_BRANCH="$(git branch --show-current)" |
11 |
| -INPUT_BRANCH=${INPUT_BRANCH:-$CURRENT_BRANCH} |
12 |
| -INPUT_EXTRA_REQUIREMENTS=${INPUT_EXTRA_REQUIREMENTS:-''} |
13 |
| -REPOSITORY=${INPUT_REPOSITORY:-$GITHUB_REPOSITORY} |
14 |
| -# : "${INPUT_CHANGELOG:=true}" ignored for now, let's check that it works |
15 |
| - |
16 | 3 | set -e
|
17 | 4 |
|
18 |
| -[ -z "${INPUT_GITHUB_TOKEN}" ] && { |
| 5 | +if [[ -z $INPUT_GITHUB_TOKEN ]]; then |
19 | 6 | echo 'Missing input "github_token: ${{ secrets.GITHUB_TOKEN }}".'
|
20 | 7 | exit 1
|
21 |
| -} |
22 |
| - |
23 |
| -echo "Repository: $REPOSITORY" |
24 |
| -echo "Actor: $GITHUB_ACTOR" |
25 |
| - |
26 |
| -echo "Installing requirements..." |
27 |
| -pip install "$INPUT_COMMITIZEN_VERSION" $INPUT_EXTRA_REQUIREMENTS |
28 |
| -echo "Commitizen version:" |
29 |
| -cz version |
| 8 | +fi |
30 | 9 |
|
31 | 10 | echo "Configuring Git username, email, and pull behavior..."
|
32 |
| -git config --local user.name "$INPUT_GIT_NAME" |
33 |
| -git config --local user.email "$INPUT_GIT_EMAIL" |
| 11 | +git config --local user.name "${INPUT_GIT_NAME}" |
| 12 | +git config --local user.email "${INPUT_GIT_EMAIL}" |
34 | 13 | git config --local pull.rebase true
|
35 | 14 | echo "Git name: $(git config --get user.name)"
|
36 | 15 | echo "Git email: $(git config --get user.email)"
|
37 | 16 |
|
38 |
| -echo "Running cz: $INPUT_DRY_RUN $INPUT_COMMIT $INPUT_CHANGELOG $INPUT_PRERELEASE" |
39 |
| - |
40 |
| -if [ $INPUT_CHANGELOG_INCREMENT_FILENAME ]; then |
41 |
| - cz $INPUT_NO_RAISE bump --yes --changelog-to-stdout $INPUT_COMMIT $INPUT_DRY_RUN $INPUT_CHANGELOG $INPUT_PRERELEASE >$INPUT_CHANGELOG_INCREMENT_FILENAME |
| 17 | +PIP_CMD=('pip' 'install') |
| 18 | +if [[ $INPUT_COMMITIZEN_VERSION == 'latest' ]]; then |
| 19 | + PIP_CMD+=('commitizen') |
42 | 20 | else
|
43 |
| - cz $INPUT_NO_RAISE bump --yes $INPUT_DRY_RUN $INPUT_COMMIT $INPUT_CHANGELOG $INPUT_PRERELEASE |
| 21 | + PIP_CMD+=("commitizen==${INPUT_COMMITIZEN_VERSION}") |
44 | 22 | fi
|
| 23 | +IFS=" " read -r -a INPUT_EXTRA_REQUIREMENTS <<<"$INPUT_EXTRA_REQUIREMENTS" |
| 24 | +PIP_CMD+=("${INPUT_EXTRA_REQUIREMENTS[@]}") |
| 25 | +echo "${PIP_CMD[@]}" |
| 26 | +"${PIP_CMD[@]}" |
| 27 | +echo "Commitizen version: $(cz version)" |
45 | 28 |
|
46 |
| -REV=$(cz version --project) |
47 |
| -export REV |
| 29 | +CZ_CMD=('cz') |
| 30 | +if [[ $INPUT_NO_RAISE ]]; then |
| 31 | + CZ_CMD+=('--no-raise' "$INPUT_NO_RAISE") |
| 32 | +fi |
| 33 | +CZ_CMD+=('bump' '--yes') |
| 34 | +if [[ $INPUT_DRY_RUN == 'true' ]]; then |
| 35 | + CZ_CMD+=('--dry-run') |
| 36 | +fi |
| 37 | +if [[ $INPUT_CHANGELOG == 'true' ]]; then |
| 38 | + CZ_CMD+=('--changelog') |
| 39 | +fi |
| 40 | +if [[ $INPUT_PRERELEASE ]]; then |
| 41 | + CZ_CMD+=('--prerelease' "$INPUT_PRERELEASE") |
| 42 | +fi |
| 43 | +if [[ $INPUT_COMMIT == 'false' ]]; then |
| 44 | + CZ_CMD+=('--files-only') |
| 45 | +fi |
| 46 | +if [[ $INPUT_CHANGELOG_INCREMENT_FILENAME ]]; then |
| 47 | + CZ_CMD+=('--changelog-to-stdout' ">$INPUT_CHANGELOG_INCREMENT_FILENAME") |
| 48 | +fi |
| 49 | +echo "${CZ_CMD[@]}" |
| 50 | +"${CZ_CMD[@]}" |
| 51 | + |
| 52 | +REV="$(cz version --project)" |
| 53 | +echo "REVISION=${REV}" >>"$GITHUB_ENV" |
| 54 | +echo "::set-output name=version::${REV}" |
48 | 55 |
|
49 |
| -echo "REVISION=$REV" >>$GITHUB_ENV |
| 56 | +CURRENT_BRANCH="$(git branch --show-current)" |
| 57 | +INPUT_BRANCH="${INPUT_BRANCH:-$CURRENT_BRANCH}" |
| 58 | +INPUT_REPOSITORY="${INPUT_REPOSITORY:-$GITHUB_REPOSITORY}" |
50 | 59 |
|
51 |
| -echo "::set-output name=version::$REV" |
| 60 | +echo "Repository: ${INPUT_REPOSITORY}" |
| 61 | +echo "Actor: ${GITHUB_ACTOR}" |
52 | 62 |
|
53 |
| -if [ "$INPUT_PUSH" == "true" ]; then |
| 63 | +if [[ $INPUT_PUSH == 'true' ]]; then |
54 | 64 | echo "Pushing to branch..."
|
55 |
| - remote_repo="https://${GITHUB_ACTOR}:${INPUT_GITHUB_TOKEN}@github.com/${REPOSITORY}.git" |
56 |
| - git pull ${remote_repo} ${INPUT_BRANCH} |
57 |
| - git push "${remote_repo}" HEAD:${INPUT_BRANCH} --tags |
| 65 | + REMOTE_REPO="https://${GITHUB_ACTOR}:${INPUT_GITHUB_TOKEN}@github.com/${INPUT_REPOSITORY}.git" |
| 66 | + git pull "$REMOTE_REPO" "$INPUT_BRANCH" |
| 67 | + git push "$REMOTE_REPO" "HEAD:${INPUT_BRANCH}" --tags |
58 | 68 | else
|
59 | 69 | echo "Not pushing"
|
60 | 70 | fi
|
|
0 commit comments