CircleCI Integration

Overview

CircleCi is a continuous integration development platform that is being used by software teams in order to enable them to build, test and deploy applications easier and faster on multiple platforms.

Integrating with CircleCI

To integrate CircleCi with WhiteSource, do as follows:

  1. Add the following build steps to your circle.yml file:

    Notice on periodically fetching the Unified Agent - It is advised to use the below curl command only once a week to download the latest version of the Unified Agent for performance reasons and not as part of every build. You can do this using a task scheduler, such as cron.

    Sample circle.yml with WhiteSource integration

    1 2 3 steps: - run: bash <(curl -s -L https://github.com/whitesource/unified-agent-distribution/raw/master/standAlone/wss_agent.sh) -apiKey xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx -c [path to config file] -project circle-ci_test -d ~/ 

     

  2. This command runs the script "wss_agent.sh". It downloads the latest version of the WhiteSource Unified Agent jar file and config file to your CircleCI host. Then, the script runs the jar with the regular command line arguments of the Unified Agent.

  3. Make sure to edit the Unified Agent configuration file to match your needs.
    NOTE: The API key is confidential and should be hidden. Consider using it as an environment variable in your .yml file. See the Unified Agent command line parameters for further information.

  4. Use the API key and determine the name of the WhiteSource project.

  5. Run the build. After the CircleCI build completes with a WhiteSource scan, you can review the scanning results in your WhiteSource organization.      

Examples

Basic Example

script:

  - pipe: WhitesourceSoftware/whitesource-scan:1.3.0

Advanced Example

script:

  - pipe: WhitesourceSoftware/whitesource-scan:1.3.0

    variables:

        API_KEY: $API_KEY

        DIRECTORY: '.'

        CONFIG_FILE_PATH: './someFolder/wss-unified-agent.config'

        COMMANDS_FILE_PATH: './someFolder/install-commands.sh


Commands File

The commands file prepares the environment for Circle CI Orbs integration to run as expected, in addition to adding NuGet to the resolution.

Commands file example: