npm.io
4.1.2 • Published 5 years ago

build-revision

Licence
MIT
Version
4.1.2
Deps
4
Size
10 kB
Vulns
0
Weekly
0
Stars
1

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

Keywords