65 lines
2.4 KiB
YAML
65 lines
2.4 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' }}"
|
|
incrementMode:
|
|
description: "The mode to increment by. Options: 'default', 'major', 'minor', 'patch'"
|
|
required: false
|
|
default: patch
|
|
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:
|
|
incrementMode: ${{ inputs.incrementMode }}
|
|
version: ${{ steps.npm.outputs.version || steps.npmFallback.outputs.version || inputs.defaultVersion }}
|