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_IDandESCAPE_API_KEYfrom 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.