Environment Variables

Screwdriver exports a set of environment variables that you can rely on during build runtime.

Note: Environment variables set in one job cannot be accessed in another job. To pass variables between jobs, use metadata.

Build Specific

General

Name Description
SD_BUILD_ID The ID of the build
SD_EVENT_ID The ID of the event
SD_JOB_ID The ID of the job
SD_JOB_NAME Job name (e.g.: main)
SD_PARENT_BUILD_ID Bracketed list of build(s) that trigger(s) this build. (e.g.: [12345 23456])
SD_PARENT_EVENT_ID ID of the parent event if this was a restart
SD_PR_PARENT_JOB_ID ID of the real job of PR. For example, in PR-1:main build, this ENV references the ID of main job
SD_PIPELINE_ID The ID of the pipeline
SD_PIPELINE_NAME The name of the pipeline (e.g.: d2lam/myPipeline)
SD_PRIVATE_PIPELINE Whether the pipeline is private(true) or not(false)
SD_PULL_REQUEST Pull Request number (e.g.: 1; blank if non-PR)
SD_STEP_EXIT_CODE Exit code from previously executed steps, only available at teardown steps (e.g.: 0 if all previous steps have passed, otherwise, the latest non-zero exit code)
SD_STEP_NAME Current step name, only available for user-defined steps, not setup or teardown commands (e.g.: during teardown, would be set to the last successfully executed step)
SD_TEMPLATE_FULLNAME Full template name the job is using (e.g.: d2lam/myTemplate; blank if not using template)
SD_TEMPLATE_NAME Name of the template the job is using (e.g.: myTemplate; blank if not using template)
SD_TEMPLATE_NAMESPACE Namespace of the template the job is using (e.g.: d2lam; blank if not using template)
SD_TEMPLATE_VERSION Version of the template the job is using (blank if not using template)
SD_BUILD_CLUSTER_NAME The name of the build cluster
SD_TOKEN JWT token for the build
SD_SCHEDULED_BUILD Whether the build is triggered by scheduler(true) or not(false)
SD_DIND_SHARE_PATH Path to shared directory between build container and DinD container when Docker-in-Docker feature is enabled
CONTAINER_IMAGE Build container image. Available when Kubernetes is used as build executor
CONTAINER_CPU_LIMIT Value of CPU allocated to build container
CONTAINER_MEMORY_LIMIT Value of memory allocated to build container

User configurable

Name Default Value Description
SD_ZIP_ARTIFACTS false Options: (true/false)

Compresses and uploads artifacts in a single ZIP file.

Use case: Reduces upload time when your build has a lot of artifacts. If the upload fails, it’s likely that the zip is too larger to handle.

Note: Consult with your cluster admin to see if this option is available.
USER_SHELL_BIN sh The user shell bin to run the build in. Can also be the full path such as /bin/bash. Example repo: https://github.com/screwdriver-cd-test/user-shell-example
GIT_RECURSIVE_CLONE true Options: (true/false)

Clones submodule repositories recursively.
GIT_SHALLOW_CLONE true Options: (true/false)

Shallow clones source repository.
GIT_SHALLOW_CLONE_DEPTH 50 Shallow clone with a history truncated to the specified number of commits
GIT_SHALLOW_CLONE_SINCE   Shallow clone with a history truncated starting from the specified datetime (inclusive). If set, this has priority over GIT_SHALLOW_CLONE_DEPTH.

This uses --shallow-since which accepts both absolute dates (e.g.: 2019-04-01) and relative dates (e.g.: 4 weeks ago).
GIT_SHALLOW_CLONE_SINGLE_BRANCH   If set to true, it will use --single-branch option for shallow clone. Otherwise, --no-single-branch option is used.
SD_COVERAGE_PLUGIN_ENABLED true If set to string false, step sd-teardown-screwdriver-coverage-bookend will be skipped.

Plugins

These environment variables may or may not be available depending on what plugins are installed.

Coverage (Sonar)

Name Description
SD_SONAR_AUTH_URL Screwdriver API authentication URL that will return a Sonar access token
SD_SONAR_HOST Sonar host URL
SD_SONAR_ENTERPRISE Whether using Enterprise (true) or open source edition of SonarQube(false)
SD_SONAR_PROJECT_KEY Sonar project key (e.g.: pipeline:123 or job:456)
SD_SONAR_PROJECT_NAME Sonar project name (e.g.: d2lam/myPipeline or d2lam/myPipeline:main)
SD_ALLOW_PRIVATE_COVERAGE_SEND If set to the string true, private pipelines will also have the ability to send coverage data

Directories

Name Description
SD_ARTIFACTS_DIR Location of built/generated files.

Note: The sd-teardown-screwdriver-artifact-bookend step uploads artifacts from this directory into the Store unless the build is ABORTED.
SD_META_DIR Location of the metadata directory
SD_META_PATH Location of the metadata file
SD_ROOT_DIR Location of workspace (e.g.: /sd/workspace)
SD_SOURCE_DIR Location of checked-out code (e.g.: sd/workspace/src/github.com/d2lam/myPipeline)
SD_SOURCE_PATH Location of source path which triggered current build. See Source Paths.
SD_CONFIG_DIR Location of parent pipeline’s repository (only set for child pipelines) (e.g.: sd/workspace/config)

Environment Variables

Name Description
<environment_variable> Environment variable specified under the “environment” section in your screwdriver.yaml

Please be aware if you are using dot notations in the environment variables, like:

environment:
   REGION.INSTANCE: 'xyz'

Then process.env.REGION.INSTANCE won’t work, and you must use process.env['REGION.INSTANCE'] dot notation to access as well.

Source Code

Name Description
SCM_URL SCM URL that was checked out (e.g.: https://github.com/d2lam/myPipeline)
GIT_URL SCM URL that was checked out with .git appended (e.g.: https://github.com/d2lam/myPipeline.git)
CONFIG_URL SCM URL of the parent pipeline repository (only set for child pipelines)
GIT_BRANCH Reference for PR or the branch (e.g.: origin/refs/${PRREF} or origin/${BRANCH})
PR_BASE_BRANCH_NAME Base branch name the PR is opened against (e.g.: ${BRANCH})
PR_BRANCH_NAME Branch name of the PR (e.g.: origin/${BRANCH} or upstream/${BRANCH})
SD_BUILD_SHA The Git commit SHA (e.g.: b5a94cdabf23b21303a0e6d5be5e96bd6300847a)

URLs

Name Description
SD_API_URL Link to the Screwdriver API URL (e.g.: https://api.screwdriver.cd/v4/)
SD_BUILD_URL Link to the Screwdriver build API URL (e.g.: https://api.screwdriver.cd/v4/builds/1)
SD_STORE_URL Link to the Screwdriver Store URL (e.g.: https://store.screwdriver.cd/v1/)
SD_UI_URL Link to the Screwdriver UI URL (e.g.: https://cd.screwdriver.cd/)
SD_UI_BUILD_URL Link to the Screwdriver UI build URL (e.g.: https://cd.screwdriver.cd/pipelines/259/builds/173)

Continuous Integration

Name Description
CI true
CONTINUOUS_INTEGRATION true
SCREWDRIVER true