diff --git a/.github/workflows/test-and-release.yml b/.github/workflows/test-and-release.yml index ad348a7..e52fe2d 100644 --- a/.github/workflows/test-and-release.yml +++ b/.github/workflows/test-and-release.yml @@ -77,7 +77,7 @@ jobs: os: - macos-latest - ubuntu-latest - # - windows-latest -- coming soon, https://github.com/reecetech/version-increment/pull/30 + - windows-latest fail-fast: true runs-on: ${{ matrix.os }} steps: diff --git a/README.md b/README.md index 36e23e1..9eeadb7 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,10 @@ ## Use 📄 +> [!NOTE] +> This action is confirmed to work on all three of GitHub's hosted runners - +> `ubuntu-latest`, `macos-latest` and `windows-latest` - at the point in time of the release of the action + ### Example ⌨️ ```yaml @@ -9,7 +13,7 @@ uses: actions/checkout@v4 - name: Get next version - uses: reecetech/version-increment@2023.9.3 + uses: reecetech/version-increment@2024.4.3 id: version with: scheme: semver @@ -30,7 +34,7 @@ use the API mode: ```yaml - name: Get next version - uses: reecetech/version-increment@2024.4.1 + uses: reecetech/version-increment@2024.4.3 id: version with: use_api: true diff --git a/action.yml b/action.yml index 6fcbc22..5975dde 100644 --- a/action.yml +++ b/action.yml @@ -80,7 +80,7 @@ runs: using: "composite" steps: - id: version-lookup - run: ${{ github.action_path }}/version-lookup.sh + run: "${GITHUB_ACTION_PATH}/version-lookup.sh" shell: bash env: github_token: ${{ github.token }} @@ -88,7 +88,7 @@ runs: use_api: ${{ inputs.use_api }} - id: version-increment - run: ${{ github.action_path }}/version-increment.sh + run: "${GITHUB_ACTION_PATH}/version-increment.sh" shell: bash env: current_version: ${{ steps.version-lookup.outputs.CURRENT_VERSION }} diff --git a/shared.sh b/shared.sh index 714587a..8fe79cc 100644 --- a/shared.sh +++ b/shared.sh @@ -2,6 +2,9 @@ # shellcheck disable=SC2034 set -euo pipefail +# Force UTF-8 for all commands, for Git-Bash on Windows compatibility +export LC_ALL=C.UTF-8 + ##==---------------------------------------------------------------------------- ## SemVer regexes ## see: https://semver.org/spec/v2.0.0.html#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string diff --git a/tests/test_version-increment.bats b/tests/test_version-increment.bats index bdb4834..1638a7d 100644 --- a/tests/test_version-increment.bats +++ b/tests/test_version-increment.bats @@ -1,6 +1,15 @@ #!/usr/bin/env bats # vim: set ft=sh sw=4 : +setup() { + # get the containing directory of this file + # use $BATS_TEST_FILENAME instead of ${BASH_SOURCE[0]} or $0, + # as those will point to the bats executable's location or the preprocessed file respectively + DIR="$( cd "$( dirname "$BATS_TEST_FILENAME" )" >/dev/null 2>&1 && pwd )" + # make executables in src/ visible to PATH + PATH="$DIR/../:$PATH" +} + load helper_print-info export repo=".tmp_testing/repo" @@ -22,7 +31,7 @@ function init_repo { @test "fails if no current_version given" { init_repo - run ../../version-increment.sh + run version-increment.sh print_run_info [ "$status" -eq 8 ] && @@ -34,7 +43,7 @@ function init_repo { export current_version=1.3.5-prerelease - run ../../version-increment.sh + run version-increment.sh print_run_info [ "$status" -eq 8 ] && @@ -46,7 +55,7 @@ function init_repo { export scheme="foover" - run ../../version-increment.sh + run version-increment.sh print_run_info [ "$status" -eq 8 ] && @@ -58,7 +67,7 @@ function init_repo { export pep440="yes" - run ../../version-increment.sh + run version-increment.sh print_run_info [ "$status" -eq 8 ] && @@ -70,7 +79,7 @@ function init_repo { export increment="critical" - run ../../version-increment.sh + run version-increment.sh print_run_info [ "$status" -eq 8 ] && @@ -90,7 +99,7 @@ function init_repo { export current_version=1.2.3 export increment="patch" - run ../../version-increment.sh + run version-increment.sh print_run_info [ "$status" -eq 0 ] && @@ -106,7 +115,7 @@ function init_repo { export current_version=1.2.3 export increment="minor" - run ../../version-increment.sh + run version-increment.sh print_run_info [ "$status" -eq 0 ] && @@ -123,7 +132,7 @@ function init_repo { export pep404="false" export increment="minor" - run ../../version-increment.sh + run version-increment.sh print_run_info [ "$status" -eq 0 ] && @@ -139,7 +148,7 @@ function init_repo { export current_version=1.2.3 export increment="major" - run ../../version-increment.sh + run version-increment.sh print_run_info [ "$status" -eq 0 ] && @@ -156,7 +165,7 @@ function init_repo { export pep404="true" export increment="major" - run ../../version-increment.sh + run version-increment.sh print_run_info [ "$status" -eq 0 ] && @@ -172,7 +181,7 @@ function init_repo { export current_version=1.2.3 export increment="major" - run ../../version-increment.sh + run version-increment.sh print_run_info [ "$status" -eq 0 ] && @@ -189,7 +198,7 @@ function init_repo { export current_version=2020.6.4 export scheme="calver" - run ../../version-increment.sh + run version-increment.sh print_run_info [ "$status" -eq 0 ] && @@ -202,7 +211,7 @@ function init_repo { export current_version="$(date +%Y.%-m.123)" export scheme="calver" - run ../../version-increment.sh + run version-increment.sh print_run_info [ "$status" -eq 0 ] && @@ -216,7 +225,7 @@ function init_repo { export GITHUB_REF="refs/heads/super-awesome-feature" export short_ref="$(git rev-parse --short HEAD | sed 's/0*//')" - run ../../version-increment.sh + run version-increment.sh print_run_info [ "$status" -eq 0 ] && @@ -231,7 +240,7 @@ function init_repo { export GITHUB_REF="refs/heads/releases" export release_branch="releases" - run ../../version-increment.sh + run version-increment.sh print_run_info [ "$status" -eq 0 ] && @@ -248,7 +257,7 @@ function init_repo { export GITHUB_REF="refs/heads/super-awesome-python" export short_ref="$(git rev-parse --short HEAD | sed 's/0*//')" - run ../../version-increment.sh + run version-increment.sh print_run_info [ "$status" -eq 0 ] && @@ -265,7 +274,7 @@ function init_repo { export GITHUB_REF="refs/heads/super-awesome-python" export short_ref="$(git rev-parse --short HEAD | sed 's/0*//')" - run ../../version-increment.sh + run version-increment.sh print_run_info [ "$status" -eq 0 ] && diff --git a/tests/test_version-lookup.bats b/tests/test_version-lookup.bats index b0864e8..7373e37 100644 --- a/tests/test_version-lookup.bats +++ b/tests/test_version-lookup.bats @@ -5,6 +5,15 @@ load helper_print-info export repo=".tmp_testing/repo" +setup() { + # get the containing directory of this file + # use $BATS_TEST_FILENAME instead of ${BASH_SOURCE[0]} or $0, + # as those will point to the bats executable's location or the preprocessed file respectively + DIR="$( cd "$( dirname "$BATS_TEST_FILENAME" )" >/dev/null 2>&1 && pwd )" + # make executables in src/ visible to PATH + PATH="$DIR/../:$PATH" +} + function init_repo { rm -rf "${repo}" && mkdir -p "${repo}" && @@ -22,7 +31,7 @@ function init_repo { export scheme="foover" - run ../../version-lookup.sh + run version-lookup.sh print_run_info [ "$status" -eq 8 ] && @@ -43,7 +52,7 @@ function init_repo { git tag 0.1.1 git tag 0.1.2 - run ../../version-lookup.sh + run version-lookup.sh print_run_info [ "$status" -eq 0 ] && @@ -55,7 +64,7 @@ function init_repo { git tag 0.1.2 - run ../../version-lookup.sh + run version-lookup.sh print_run_info [ "$status" -eq 0 ] && @@ -69,7 +78,7 @@ function init_repo { git tag 1.2.300 git tag 1.2.301-dev.234 - run ../../version-lookup.sh + run version-lookup.sh print_run_info [ "$status" -eq 0 ] && @@ -79,7 +88,7 @@ function init_repo { @test "returns 0.0.0 if no normal version detected" { init_repo - run ../../version-lookup.sh + run version-lookup.sh print_run_info [ "$status" -eq 0 ] && @@ -91,7 +100,7 @@ function init_repo { git tag 0.0.1-dev.999 - run ../../version-lookup.sh + run version-lookup.sh print_run_info [ "$status" -eq 0 ] && @@ -103,7 +112,7 @@ function init_repo { export scheme="calver" - run ../../version-lookup.sh + run version-lookup.sh print_run_info [ "$status" -eq 0 ] && @@ -115,7 +124,7 @@ function init_repo { git tag v3.4.5 - run ../../version-lookup.sh + run version-lookup.sh print_run_info [ "$status" -eq 0 ] &&