Skip to content

Generate a semver compatible version number for your continuous builds which includes build metadata

License

Notifications You must be signed in to change notification settings

abhishekdev/build-revision

Folders and files

NameName
Last commit message
Last commit date

Latest commit

944f94e Β· Jul 10, 2021

History

92 Commits
Jul 5, 2021
Apr 7, 2021
Jul 5, 2021
Sep 19, 2020
Jan 30, 2017
Jan 30, 2017
Feb 1, 2017
Apr 8, 2021
Sep 11, 2020
Apr 8, 2021
Jan 3, 2019
Dec 26, 2017
Jul 29, 2019
Jul 28, 2019
Sep 19, 2020
Feb 1, 2017
Jul 10, 2021
Jul 10, 2021
Sep 20, 2020

Repository files navigation

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

About

Generate a semver compatible version number for your continuous builds which includes build metadata

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published