build-revision

4.1.2 • Public • Published

build-revision

Coverage Status Build status Build Status

Generate semver compatible version to uniquely identify project build using build metadata

Usage

Install

# OPTION: Use npm
$ npm install --save-dev build-revision

# OPTION: Use yarn
$ yarn add build-revision --dev

Example

ES2015

var buildRevision = require('build-revision');

buildRevision().then(function(version){
  console.log(version);
});

ES2017+

import buildRevision from 'build-revision';

const fn = aync() => {
  const version = await buildRevision();
  console.log(version);
}

Results

If build metadata included in 'package.json' differs from that found by git. The SHA found by git is used.

Working copy has no changes (CI/CD Tools)

Version Build Version
0.1.0 0.1.0+SHA.abcd123
0.1.0-pre 0.1.0-pre+SHA.abcd123
0.1.0-pre+SHA.01234567 0.1.0-pre+SHA.01234567

Working copy has no changes (Developer Machine)

Version Build Version
0.1.0 0.1.0+SHA.abcd123.currentuser.20170101T000000Z
0.1.0-pre 0.1.0-pre+SHA.abcd123.currentuser.20170101T000000Z
0.1.0-pre+SHA.01234567 0.1.0-pre+SHA.01234567.currentuser.20170101T000000Z

Working copy is NOT a git clone

Version Build Version
0.1.0 0.1.0+NOREV.currentuser.20170101T000000Z
0.1.0-pre 0.1.0-pre+NOREV.currentuser.20170101T000000Z

API

buildRevision(options)

  • Appends prefix.username.timestamp to the version if repository does not exists
  • Appends prefix.githash.username.timestamp to the version for a git repository with local changes
  • Appends prefix.githash to the version for a git repository with no local changes

The timestamp is an ISO 8601 UTC string

Type: Promise
Throws: Error
  - if the package version is not resolved
  - if the package version is not a valid semver
  - if the project is not a git repository
Returns:
  - semver compatible version with a build metadata part

Options

options.prefix

Build metadata Prefix

Type: `String`
Default: `SHA`

options.cwd

Search for the closest package.json starting from this directory

Type: `String`
Default: `.`

License MIT

Package Sidebar

Install

npm i build-revision

Weekly Downloads

2

Version

4.1.2

License

MIT

Unpacked Size

9.87 kB

Total Files

6

Last publish

Collaborators

  • abhishekdev