tobysmith568 / npm-publish-latest-tag

A GitHub Action step which returns a tag value for you to supply to the npm publish command so that patches to old major versions don't automatically get given the "latest" tag.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

npm GitHub release (latest by date) FOSSA Status

npm Publish Latest Tag GitHub Action

A Github Action for getting a tag value to supply to the npm publish command so that updates to old major versions don't automatically get given the latest tag.

If you're looking for the npm package & CLI, you want this Readme: ./packages/npm-publish-latest-tag/README.md.

Why use this?

If you provide no tags to the npm publish command then npm automatically gives that release the latest tag. The version with the latest tag is the one a user will get if they npm install without specifying a tag or a version.

This Action returns a string for you to supply to the npm publish command with the --tag flag so that your current major version always keeps the latest tag.

Updates to older major versions will get a tag that is specific to that major version. Pre-releases/alphas/betas/etc will be tagged as such for their major version, no matter if it's an older, current, or newer major version.

Examples

Scenario Outputted tag value Example where current
version is 2.3.4
Publishing new major version latest 3.0.0latest
Publishing minor/patch to current major release latest 2.4.0latest
Publishing minor/patch to old major release latest-X where X is the major version 1.4.5latest-1
Publishing pre-release/alpha/beta/etc latest-X-Y where X is the major
version and Y is the first pre-release section
3.0.0-betalatest-3-beta

Usage

To use this Action, run it and then pass the output to the npm publish command.
Note the use of id: latest_tag so that the output can be used.

Inputs

  • package-json: The path to the package.json file relative to the root of the repository

Outputs

  • latest-tag: The value to use for the --tag option in npm publish
- uses: tobysmith568/npm-publish-latest-tag@v1
  id: latest_tag
  with:
    package-json: ./package.json

- run: npm publish --tag ${{ steps.latest_tag.outputs.latest-tag }}
  env:
    NODE_AUTH_TOKEN: ${{ secrets.npm_token }}

Contributing

This Action is written in TypeScript. Because GitHub Actions need to be in JavaScript, the compilation output for this repository is not gitignored and should be committed. When you run npm install a pre-commit git-hook will be configured using husky which will re-compile the build output, and stage the relevant changes for you.

License

npm-publish-latest-tag and npm-publish-latest-tag-github-action are licensed under the ISC License.

About

A GitHub Action step which returns a tag value for you to supply to the npm publish command so that patches to old major versions don't automatically get given the "latest" tag.

License:ISC License


Languages

Language:JavaScript 97.6%Language:TypeScript 2.3%Language:Shell 0.0%