@origami-network/cli-step-version v0.0.0
Get Version
Helper command line tool to get version from the package.json file in the current working directory.
It can be used as continuous integration/delivery step to return versions to the pipeline.
Usage
The simple usage is to define custom script that will install and run the command at once.
In the package.json add new script:
{
    ...
    "scripts": {
        "cli-step-version": "npm install --no-save --silent @origami-network/cli-step-version && cli-step-version"
        ...
    }
    ...
}Now it is possible to get version from command line.
> npm run cli-step-versionAs the result the last two lines on the console will display version for:
- build - including build number and branch that can be used to uniquely associate output with the build process.
 - publish - the version that should be used to publish artifacts in registries. Like node package to NPM registry.
 
This will allow to run the script without calling npm install before.
Parameters
It is possible to pass additional parameters to the script when calling npm run, by adding -- and the arguments of the script:
-n,--build-number <value>- sequential number, added as the last digit in the version number,-b,--build-branch <name>- additional value indicating the branch or label for the version, added after eventual build number separated by "-" character.
In addition, fallowing informational parameters can be used:
-h,--help- output usage information,-V,--version- output version of the script.
Examples
Command line
if the package.json has defined version 1.2.3, then calling fallowing command:
> npm run cli-step-version -- -build-number 10 -build-branch feature/new-functionWill provide two last line of the output:
1.2.3.10-feature-new-function
1.2.3Jenkinsfile
For Windows slave node add fallowing code to Jenkinsfile.
def output = bat (
    script: "npm run cli-step-version -- --build-number ${env.BUILD_NUMBER} --build-branch ${env.BRANCH_NAME}",
    returnStdout: true
).tokenize().takeRight(2)
def version = [
    build: output.first(),
    publish: output.last()
]On Un*x slave nodes bat step should be replaced with sh step.
By default Jenkins script policy do not allow methods
takeRightandfirst. After first run they need to be accepted.
8 years ago