Files
common/npm/npm-get-next-branched-version/action.yaml

60 lines
2.2 KiB
YAML

name: npm-get-next-branched-version
description: "Get the next version of an NPM package based on the current branch status."
inputs:
name:
description: "The name of the package."
required: true
defaultVersion:
description: "Default version to use."
required: true
default: "1.0.0"
registry:
description: "NPM registry URL."
required: false
default: ${{ github.server_url }}/api/packages/${{ github.repository_owner }}/nuget/index.json
authToken:
description: "Authentication token for the registry."
required: true
prerelease:
description: "Query prerelease packages. Values: true, false."
required: false
default: "${{ github.event_name == 'pull_request' }}"
outputs:
latestVersion:
description: "The current latest version for the package."
value: ${{ steps.npm.outputs.version || steps.npmFallback.outputs.version }}
nextVersion:
description: "The next version for the package."
value: ${{ steps.version.outputs.nextVersion }}
runs:
using: "composite"
steps:
- name: "Get the base version for the package."
uses: act/common/utils/version-increment-branch@master
id: base
with:
version: ${{ inputs.defaultVersion }}
- uses: act/common/npm/npm-query-versions-latest@master
id: npm
with:
name: ${{ inputs.name }}
registry: ${{ inputs.registry }}
authToken: ${{ inputs.authToken }}
filter: ^${{ steps.base.outputs.baseVersion }}
prerelease: ${{ inputs.prerelease }}
- name: "If no version is found, get the latest version for the package if we didn't already look for it."
uses: act/common/npm/npm-query-versions-latest@master
id: npmFallback
if: ${{ steps.npm.outputs.version == '' && inputs.prerelease != 'false' }}
with:
name: ${{ inputs.name }}
registry: ${{ inputs.registry }}
authToken: ${{ inputs.authToken }}
filter: ^${{ steps.base.outputs.majorMinorPatchVersion }}
prerelease: "false"
- name: "Get the next version for the package."
uses: act/common/utils/version-increment-branch@master
id: version
with:
version: ${{ steps.npm.outputs.version || steps.npmFallback.outputs.version || inputs.defaultVersion }}