Jenkins Pipeline
Basic example
Here's how you can integrate Escape into your Jenkins Pipeline in your Jenkinsfile
:
pipeline {
agent { label 'node' } // Use a node with Node.js installed
environment {
ESCAPE_APPLICATION_ID = credentials('ESCAPE_APPLICATION_ID')
ESCAPE_API_KEY = credentials('ESCAPE_API_KEY')
}
stages {
stage('Checkout') {
steps {
checkout scm // Checkout the codebase from the SCM provider
}
}
stage('Post-Deploy') {
when {
branch 'staging' // Only run on the 'staging' branch
}
steps {
script {
// Install the Escape CLI tool
sh 'npm install -g @escape.tech/action'
// Show the installed Escape CLI version
sh 'npm show @escape.tech/action version'
// Run Escape action
sh 'escape-action'
}
}
post {
always {
// Configuration to allow failure
}
}
}
}
}
This example Jenkinsfile does the following:
- Sets up an environment with Node.js.
- Loads the
ESCAPE_APPLICATION_ID
andESCAPE_API_KEY
from Jenkins' stored credentials. - Checks out the codebase from your SCM (Source Control Management).
- Runs the Escape action in the Post-Deploy stage, specifically when the branch is staging.
Failure behavior
By default, Escape cli will fail if any High issues are flagged, and will exit with an error code 1.
Available variables
ESCAPE_APPLICATION_ID
string required
The id of the application on Escape that will be scanned continuously.
You can find it in your Escape application settings.
ESCAPE_API_KEY
string required
Your API key on the Escape platform.
You can find it in your Escape settings.
SCHEMA_URL
string
The URL to your API schema, that you want to upload to the specific application ESCAPE_APPLICATION_ID
SCHEMA_FILE
string
The filepath to your API schema, that you want to upload to the specific application ESCAPE_APPLICATION_ID
FAIL_ON_SEVERITIES
string
A csv-delimited string that should contain either of these severities to define a failure of the cli (exit code 1):
- HIGH
- MEDIUM
- LOW
- INFO
For example, export FAIL_ON_SEVERITIES=HIGH,MEDIUM
will make the cli fail if any HIGH or MEDIUM issues are flagged.
TIMEOUT
number
The timeout of the job. If set to 0, the scan will be started, but the job will not wait for it to be finished before terminating.
The triggered scan will run asynchronously on Escape, and your team will be notified once it is done using your desired notifications settings.
CONFIGURATION_OVERRIDE
string
See the configuration override section.
CONFIGURATION_OVERRIDE_PATH
string
See the configuration override section.
REF_NAME
string
See the commit identification section.
COMMIT_HASH
string
See the commit identification section.
USER_EMAIL
string
See the commit identification section.
INTROSPECTION_FILE
path
See the introspection update section.
Command-line options
--output <path>
string
The path to the output file that will contain the scan results.