name: Publish Workflow / Bump version
description: It bump version of provided package

inputs:
  version:
    description: <newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease
    required: true
  npm_tag:
    description: tag for NPM artifact
    required: false
  
outputs:
  prev_version:
    value: ${{ steps.internal_id_prev_version.outputs.value }}
  next_version:
    value: ${{ steps.internal_id_next_version.outputs.value }}

runs:
  using: composite
  steps:
    - name: Saving current version to env
      id: internal_id_prev_version
      run: echo "value=$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT
      shell: bash

    - name: Bump version
      if: ${{ !inputs.npm_tag }}
      run: yarn version --new-version "${{ inputs.version }}" --no-commit-hooks --no-git-tag-version
      shell: bash

    - name: Bump version with npm_tag
      if: ${{ inputs.npm_tag }}
      run: yarn version --new-version "${{ inputs.version }}" --preid ${{ inputs.npm_tag }} --no-commit-hooks --no-git-tag-version
      shell: bash

    - name: Saving new version to env
      id: internal_id_next_version
      run: echo "value=$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT
      shell: bash
