Jenkins CI

Environment variables

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.

Node.js project configuration

Jenkinsfile (Declarative Pipeline) configuration for a Node.js job

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
                '''
            }
        }
    }
}

package.json configuration for a Node job

A package.json is required only for local semantic-release installation.

{
  "devDependencies": {
    "semantic-release": "^18.0.0"
  }
}

Last updated