CircleCI

CircleCI is continuous integration and continuous delivery platform that can be used to implement DevOps best practices.

Integrating CircleCI with Cortex allows you to:

How to configure CircleCI with Cortex

Prerequisites

Before getting started:

Self-hosted CircleCI instances

If you’re using a self-hosted instance of CircleCI, you’ll need to verify that your Cortex instance is able to reach the CircleCI instance. We route our requests through a static IP address. Reach out to support at [email protected] to receive details about our static IP. If you're unable to directly allowlist our static IP, you can route requests through a secondary proxy in your network that has this IP allowlisted and have that proxy route traffic to your CircleCI instance.

Configure the integration in Cortex

  1. In Cortex, navigate to the CircleCI settings page:

    1. In Cortex, click your avatar in the lower left corner, then click Settings.

    2. Under "Integrations", click CircleCI.

  2. Click Add configuration.

  3. Configure the integration form:

    • Account alias: Enter an alias for this integration, used to tie entity registrations to different configurations.

    • API token: Enter the value of the API token you created in CircleCI.

    • Host: Enter the URL for your CircleCI instance if self-hosted, e.g., https://cortex.circleci.com

  4. Click Save.

After saving your configuration, you are redirected to the CircleCI integration settings page in Cortex. In the upper right corner of the page, click Test configuration to ensure CircleCI was configured properly.

Configure the integration for multiple CircleCI accounts

The CircleCI integration has multi-account support. You can add a configuration for each additional by repeating the process above.

Each configuration requires an alias, which Cortex uses to correlate the designated with registrations for various entities. Registrations can also use a default configuration without a listed alias. You can edit aliases and default configurations from the CircleCI page in your Cortex settings. Select the edit icon next to a given configuration and toggle Set as default on. If you only have one configuration, it will automatically be set as the default.

How to connect Cortex entities to CircleCI

Editing the entity descriptor

You can define CircleCI projects in an entity's YAML descriptor. Add its project slug under the x-cortex-circle-ci block:

x-cortex-circle-ci:
  projects:
    - projectSlug: circleci-projectslug # projectslug in CircleCI
      alias: circleci-alias # alias is optional and only relevant if you have opted into multi account support

Using the CircleCI integration

Viewing CircleCI information on entity pages

When an entity has a CircleCI project defined in its YAML file, you will see metric and pipeline details on an entity's details page. Click CI/CD > CircleCI in the entity's sidebar to see this information.

Scorecards and CQL

With the CircleCI integration, you can create Scorecard rules and write CQL queries based on CircleCI metrics and pipelines.

See more examples in the CQL Explorer in Cortex.

Check for CircleCI flaky tests

Get all Circle CI flaky tests associated with the entity.

Definition: circleci.flakyTests()

Example

You could create a Scorecard with a rule that verifies no flaky tests:

circleci.flakyTests().length == 0
Get Circle CI projects

Get all Circle CI projects associated with the entity.

Definition: circleci.projects()

Example

You could also create a rule that checks for a success rate over 90%:

circleci.projects().all((project) => project.metrics.successRate > 0.9) == true

Still need help?

The following options are available to get assistance from the Cortex Customer Engineering team:

  • Email: [email protected], or open a support ticket in the in app Resource Center

  • Chat: Available in the Resource Center

  • Slack: Users with a connected Slack channel will have a workflow added to their account. From here, you can either @CortexTechnicalSupport or add a :ticket: reaction to a question in Slack, and the team will respond directly.

Don’t have a Slack channel? Talk with your Customer Success Manager.

Last updated

Was this helpful?