⌨️ Report CI/CD Events

800

We provide Faros Events CLI for reporting CI/CD events to Faros CE platform. The CLI currently supports sending two types of events: CI Event and CD Event.

2250

Usage

Instrumenting your CI/CD pipelines is as easy as adding a single command at the end. E.g sending CI event:

./faros_event.sh CI \
    --community_edition \
    --url "http://localhost:8080" \
    --run "<run_source>://<run_org>/<run_pipeline>/<run_id>" \
    --commit "<commit_source>://<commit_org>/<commit_repo>/<commit_sha>" \
    --artifact "<artifact_source>://<artifact_org>/<artifact_repo>/<artifact_id>" \
    --run_status "Success" \
    --run_start_time "1626804346000" \
    --run_end_time "1626804358000"
./faros_event.sh CD \
    --community_edition \
    --url "http://localhost:8080" \
    --artifact "<artifact_source>://<artifact_organization>/<artifact_repository>/<artifact_id>" \
    --deploy "<deploy_source>://<deploy_application>/<deploy_environment>/<deploy_id>" \
    --deploy_status "Success" \
    --deploy_start_time "1626804356000" \
    --deploy_end_time "1626804357000"

Download & read more usage examples in Faros Events CLI repository or in the Recipes link below.

Entity Overview

1820

CI Event

Use CI events to instrument code build pipelines. E.g report the result of a successful code build pipeline execution.

The main entity written by a CI event is a cicd_Artifact which is associated to a cicd_ArtifactCommitAssociation that ties the artifact to the code version (vcs_Commit) it was built with. The cicd_Artifact is also optionally tied to a cicd_Build to get timing and status information.

CD Event

Use CD events to instrument deployment pipelines. E.g report the result of a successful application deployment to prod.

The main entity written by a CD event is a cicd_Deployment which is associated to a cicd_ArtifactDeployment and points to a compute_Application. The cicd_Deployment is also optionally tied to a cicd_Build to get timing and status information about the pipeline execution that triggered the deployment. In a CD event, one can either pass:

  • an artifact URI (for which Faros may have received a CI event already)
  • or a commit representing the code version of what is being deployed; in this case, a dummy cicd_Artifact and cicd_ArtifactCommitAssociation will be created

Detailed Entity Reference

Entity

Description

Related Entities

vcs_Commit

A commit in an VCS

  • Belongs to exactly 1 vcs_Repository
  • Is the code version used to build 0-n cicd_Artifact (relation captured in cicd_ArtifactCommitAssociation)

cicd_ArtifactCommitAssociation

Entity linking a vcs_Commit and a cicd_Artifact

cicd_Artifact

An artifact, like a Docker image. Built from your code, and deployed as part of an application

  • Is built from 0-n vcs_Commit (relation captured in cicd_ArtifactCommitAssociation)
  • Its built is captured in 1 cicd_Build for status and timing details
  • Is stored in 1 cicd_Repository
  • Is part of 0-n cicd_Deployment (relation captured in cicd_ArtifactDeployment)

cicd_ArtifactDeployment

Entity linking a cicd_Artifact and a cicd_Deployment

cicd_Deployment

A deployment of one ore more artifacts for an application in an environment.

  • Made of 0-n cicd_Artifact (relation captured in cicd_ArtifactDeployment)
  • About exactly 1 compute_Application
  • Its deployment captured in 1 cicd_Build for status and timing details

vcs_Repository

The VCS repository that contains commits

  • Contains 0-n vcs_Commit
  • Belongs to exactly 1 vcs_Organization

vcs_Organization

The organization that owns the VCS repository

  • Has 0-n vcs_Repository

cicd_Build

A run of a pipeline (that builds an artifact, deploys code, ...). Top-most entity that has a status for CI/CD systems.

  • Can link to 0-n cicd_Artifact or
    0-n cicd_Deployment for status and timing details
  • Belongs to 1 cicd_Pipeline

cicd_Pipeline

The "template" of a cicd_Build

  • Has 0-n "runs" captured as cicd_Build
  • Belongs to exactly 1 cicd_Organization

cicd_Repository

The repository that contains artifacts

  • Contains 0-n cicd_Artifact
  • Belongs to exactly 1 cicd_Organization

cicd_Organization

The organization that owns the (CI/CD) repository or pipeline

  • Links to 0-n cicd_Repository or 0-n cicd_Pipeline