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 }}/npm/ 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 }}