⌨️ Report CI/CD Events

800800

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.

22502250

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

18201820

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

EntityDescriptionRelated Entities
vcs_CommitA 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_ArtifactCommitAssociationEntity linking a vcs_Commit and a cicd_Artifact
cicd_ArtifactAn 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_ArtifactDeploymentEntity linking a cicd_Artifact and a cicd_Deployment
cicd_DeploymentA 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_RepositoryThe VCS repository that contains commits- Contains 0-n vcs_Commit
- Belongs to exactly 1 vcs_Organization
vcs_OrganizationThe organization that owns the VCS repository- Has 0-n vcs_Repository
cicd_BuildA 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_PipelineThe "template" of a cicd_Build- Has 0-n "runs" captured as cicd_Build
- Belongs to exactly 1 cicd_Organization
cicd_RepositoryThe repository that contains artifacts- Contains 0-n cicd_Artifact
- Belongs to exactly 1 cicd_Organization
cicd_OrganizationThe organization that owns the (CI/CD) repository or pipeline- Links to 0-n cicd_Repository or 0-n cicd_Pipeline