Cleans, parses, and compares semantic versions, providing essential insights into versioning, stability, and compatibility, making software release management a breeze!
- update Shields/Badges see ShieldsDemo
# RUNNER
- name: "Read Semver Info"
id: "semver_info"
uses: YunaBraska/semver-info-action@main
# CONFIGS (Optional)
with:
semver-a: 'v1.2.3-rc.4'
semver-b: 'v5.6.7-rc.8'
fallBack-semver-a: '0.0.1'
fallBack-semver-b: '0.0.1'
increase-a: 'none'
increase-b: 'none'
# PRINT
- name: "Print Semver Info"
run: |
echo "clean_semver [${{ steps.semver_info.outputs.clean_semver }}]"
echo "is_stable [${{ steps.semver_info.outputs.is_stable }}]"
echo "is_valid_semver [${{ steps.semver_info.outputs.is_valid_semver }}]"
echo "is_major_change [${{ steps.semver_info.outputs.is_major_change }}]"
echo "is_a_greater_than_b [${{ steps.semver_info.outputs.is_greater_a }}]"
echo "next_major [${{ steps.semver_info.outputs.next_major }}]"
echo "next_major_a [${{ steps.semver_info.outputs.next_major_a }}]"
echo "next_major_b [${{ steps.semver_info.outputs.next_major_b }}]"
echo "next_minor [${{ steps.semver_info.outputs.next_minor }}]"
echo "next_patch [${{ steps.semver_info.outputs.next_patch }}]"
echo "next_rc [${{ steps.semver_info.outputs.next_rc }}]"
| parameter | Example | Default | Description |
|---|---|---|---|
| semver-a | v1.2.3-rc.4 | null | Semver A to process |
| semver-b | v5.6.7-rc.8 | null | Semver B to process - will be compared against the first semver |
| fallBack-semver-a | 0.0.1 | null | The fallback version A in case version A is not valid |
| fallBack-semver-b | 0.0.1 | null | The fallback version B in case version B is not valid |
| increase-a | major | null | Increase version A before processing [major, minor, patch, rc] |
| increase-b | patch | null | Increase version B before processing [major, minor, patch, rc] |
| null-to-empty | true | true | Replaces null values with empty strings |
| use-version-txt | true | false | Overwrites input semver-b with the version from version.txt file - if the file exists and the version is valid |
| Name | Example | Default | Description |
|---|---|---|---|
| clean_semver | 5.6.7-rc.8 | null | The cleaned and normalized version without any prefix (highest semver wins) |
| clean_semver_a | 1.2.3-rc.4 | null | The cleaned and normalized version A without any prefix |
| clean_semver_b | 5.6.7-rc.8 | null | The cleaned and normalized version B without any prefix |
| is_greater_a | false | false | Whether A is greater than B |
| is_smaller_a | true | false | Whether A is smaller than B |
| is_greater_b | true | false | Whether B is greater than A |
| is_smaller_b | false | false | Whether B is smaller than A |
| change_type | major | null | Diff A and B change [major, minor, patch, rc] |
| is_major_change | true | false | If diff A and B is a major change |
| is_minor_change | false | false | If diff A and B is a minor change |
| is_patch_change | false | false | If diff A and B is a patch change |
| is_rc_change | false | false | If diff A and B is a rc (release candidate) change |
| is_valid_semver | true | false | Whether the semver is valid (highest semver wins) |
| is_valid_semver_a | true | false | Whether semver A is valid |
| is_valid_semver_b | true | false | Whether semver B is valid |
| is_stable | false | false | Whether the version is stable (doesn't contain any pre-release tag) (highest semver wins) |
| is_stable_a | false | false | Whether version A is stable (doesn't contain any pre-release tag) |
| is_stable_b | false | false | Whether version B is stable (doesn't contain any pre-release tag) |
| major | 5 | null | The major version of provided semver (highest semver wins) |
| major_a | 1 | null | The major version of A |
| major_b | 5 | null | The major version of B |
| minor | 6 | null | The minor version of provided semver (highest semver wins) |
| minor_a | 2 | null | The minor version of A |
| minor_b | 6 | null | The minor version of B |
| patch | 7 | null | The patch version of provided semver (highest semver wins) |
| patch_a | 3 | null | The patch version of A |
| patch_b | 7 | null | The patch version of B |
| rc | 8 | null | The release candidate version of provided semver (highest semver wins) |
| rc_a | 4 | null | The release candidate version of A |
| rc_b | 8 | null | The release candidate version of B |
| rc_str | rc | null | The prefix of the release candidate version (highest semver wins) |
| rc_str_a | rc | null | The prefix of the release candidate version of A |
| rc_str_b | rc | null | The prefix of the release candidate version of B |
| next_major | 6.0.0 | null | The next major version of provided semver (highest semver wins) |
| next_major_a | 2.0.0 | null | The next major version of A |
| next_major_b | 6.0.0 | null | The next major version of B |
| next_minor | 6.0.0 | null | The next minor version of provided semver (highest semver wins) |
| next_minor_a | 2.0.0 | null | The next minor version of A |
| next_minor_b | 6.0.0 | null | The next minor version of B |
| next_patch | 6.0.0 | null | The next patch version of provided semver (highest semver wins) |
| next_patch_a | 2.0.0 | null | The next patch version of A |
| next_patch_b | 6.0.0 | null | The next patch version of B |
| next_rc | 6.0.0 | null | The next rc version of provided semver (highest semver wins) |
| next_rc_a | 2.0.0 | null | The next rc version of A |
| next_rc_b | 6.0.0 | null | The next rc version of B |
| original-semver-a | v1.2.3-rc.4 | null | Semver A to process |
| original-semver-b | v5.6.7-rc.8 | null | Semver B to process - will be compared with first semver |
| fallBack-semver-a | 0.0.1 | null | The fallback version A in case the original version A is not valid |
| fallBack-semver-b | 0.0.1 | null | The fallback version B in case the original version B is not valid |
| version_txt | 1.2.3 | null | semver from version file |
| version_txt_path | /project/version.txt | null | path of version file |
- Build:
npm run buildto "compile"index.tsto./lib/index.js - Test:
npm run test - clean environment:
./clean_node.sh - Hint: please do not remove the node modules as they are required for custom GitHub actions :(