Using semantic-release with Jenkins CI
The Authentication environment variables can be configured in Jenkins Project Settings..
Alternatively, the default NPM_TOKEN
and GH_TOKEN
can be easily setup with semantic-release-cli.
Note: The publish pipeline must run a Node version that meets our requirement.
This example is a minimal configuration for semantic-release with a build running a version of Node labelled as "node LTS". Since versions of Node are manually downloaded and labelled, we recommend keeping the version used for the release steps up-to-date with the latest LTS version. See the Jenkins documentation for additional configuration options.
// The release stage in the pipeline will run only if the test stage in the pipeline is successful
pipeline {
agent any
environment {
GH_TOKEN = credentials('some-id')
}
stages {
stage('Test') {
steps {
sh '''
# Configure your test steps here (checkout, npm install, tests etc)
npm install
npm test
'''
}
}
stage('Release') {
tools {
nodejs "node LTS"
}
steps {
sh '''
# Run optional required steps before releasing
npx semantic-release
'''
}
}
}
}
A package.json
is required only for local semantic-release installation.
{
"devDependencies": {
"semantic-release": "^18.0.0"
}
}