Giter Site home page Giter Site logo

gh-action-bump-version's Introduction

gh-action-bump-version

GitHub Action for automated npm version bump.

This Action bumps the version in package.json and pushes it back to the repo. It is meant to be used on every successful merge to master but you'll need to configured that workflow yourself. You can look to the .github/workflows/push.yml file in this project as an example.

Attention

Make sure you use the actions/checkout@v2 action!

Migration: Version v9 and up

Remove the 'actions/setup-node@v1' step from your action.yml file

      - name: 'Setup Node.js'
        uses: 'actions/setup-node@v1'
        with:
          node-version: 14

Workflow

  • Based on the commit messages, increment the version from the latest release.
    • If the string "BREAKING CHANGE", "major" or the Attention pattern refactor!: drop support for Node 6 is found anywhere in any of the commit messages or descriptions the major version will be incremented.
    • If a commit message begins with the string "feat" or includes "minor" then the minor version will be increased. This works for most common commit metadata for feature additions: "feat: new API" and "feature: new API".
    • If a commit message contains the word "pre-alpha" or "pre-beta" or "pre-rc" then the pre-release version will be increased (for example specifying pre-alpha: 1.6.0-alpha.1 -> 1.6.0-alpha.2 or, specifying pre-beta: 1.6.0-alpha.1 -> 1.6.0-beta.0)
    • All other changes will increment the patch version.
  • Push the bumped npm version in package.json back into the repo.
  • Push a tag for the new version back into the repo.

Usage:

tag-prefix: Prefix that is used for the git tag (optional). Example:

- name:  'Automated Version Bump'
  uses:  'phips28/gh-action-bump-version@master'
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  with:
    tag-prefix:  'v'

skip-tag: The tag is not added to the git repository (optional). Example:

- name:  'Automated Version Bump'
  uses:  'phips28/gh-action-bump-version@master'
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  with:
    skip-tag:  'true'

default: Set a default version bump to use (optional - defaults to patch). Example:

- name:  'Automated Version Bump'
  uses:  'phips28/gh-action-bump-version@master'
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  with:
    default: prerelease

preid: Set a preid value will building prerelease version (optional - defaults to 'rc'). Example:

- name:  'Automated Version Bump'
  uses:  'phips28/gh-action-bump-version@master'
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  with:
    default: prerelease
    preid: 'prc'

wording: Customize the messages that trigger the version bump. It must be a string, case sensitive, coma separated (optional). Example:

- name:  'Automated Version Bump'
  uses:  'phips28/gh-action-bump-version@master'
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  with:
    minor-wording:  'add,Adds,new'
    major-wording:  'MAJOR,cut-major'
    patch-wording:  'patch,fixes'     # Providing patch-wording will override commits
                                      # defaulting to a patch bump.
    rc-wording:     'RELEASE,alpha'

PACKAGEJSON_DIR: Param to parse the location of the desired package.json (optional). Example:

- name:  'Automated Version Bump'
  uses:  'phips28/gh-action-bump-version@master'
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    PACKAGEJSON_DIR:  'frontend'

TARGET-BRANCH: Set a custom target branch to use when bumping the version. Useful in cases such as updating the version on master after a tag has been set (optional). Example:

- name:  'Automated Version Bump'
  uses:  'phips28/gh-action-bump-version@master'
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  with:
    target-branch: 'master'

commit-message: Set a custom commit message for version bump commit. Useful for skipping additional workflows run on push. Example:

- name:  'Automated Version Bump'
  uses:  'phips28/gh-action-bump-version@master'
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  with:
    commit-message: 'CI: bumps version to {{version}} [skip ci]'

push: Set false you want to avoid pushing the new version tag/package.json. Example:

- name:  'Automated Version Bump'
  uses:  'phips28/gh-action-bump-version@master'
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  with:
    push: false

gh-action-bump-version's People

Contributors

alehechka avatar bootsie123 avatar buresmi7 avatar cmario92 avatar dependabot[bot] avatar dfantonio avatar dkaoster avatar emad-salah avatar eomm avatar fadeenk avatar gmaggiodev avatar gopro16 avatar gustash avatar havenchyk avatar jackton1 avatar jacse avatar jlipps avatar johanlajili avatar kevcube avatar mikeal avatar mob-suvee avatar noamokman avatar nrn avatar olleolleolle avatar phips28 avatar sammccants avatar stephanrotolante avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.