Task Processing

Execution Engine

The CDAF execution engine allows the DevOps Engineer to focus on the primary objective, and not have to cater for logging, exception and error handling. Within this engine are a set of operations for common problems, further allowing a focus on results and rewriting/copying scripts. See Execution Engine documentation.

Note: The following is details a subset of CDAF capabilities, describing a common usage, For a detailed breakdown of each component, see the CDAF Reference Guide.

sequenceDiagram
  autonumber
  participant entry point
  participant buildPackage
  participant buildProjects
  participant execute
  participant package

  entry point ->>+ buildPackage: BUILDNUMBER
    Note right of buildPackage: "Build" Process Begins
    buildPackage ->> buildPackage: Property Translation (properties.cm)
    loop for each Directory containering build.tsk
      Note right of buildPackage: "Project" is a historical name <br/> from Eclipse & Visual Studio
      buildPackage ->>+ buildProjects: Project Name
      buildProjects ->>+ Transform: Load Properties
      Transform ->>- buildProjects: propertyList
      buildProjects ->>+ execute: build.tsk
      loop for each Line in build.tsk
        Note right of execute: Build commands, such as <br/> MSBuild, NPM, etc.
        execute ->> execute: log, execute and manage errors
      end
      execute ->>- buildProjects: build artefacts
      buildProjects ->>- buildPackage: build complete
    end

    Note right of buildPackage: "Package" Process Begins
    buildPackage ->>+ package: proejctName
    package ->>+ Transform: Load Properties
    Transform ->>- package: propertyList
    package ->>- buildPackage: project complete
    buildPackage ->>+ packageLocal: prepare release
      packageLocal ->> packageLocal: Gather CDAF SCripts <br/> and deploy properties
      packageLocal ->> packageLocal: Gather user defined artefacts
    packageLocal ->>- buildPackage: artefacts
    buildPackage ->> buildPackage: generate self-extract release
  buildPackage ->>- entry point: release.ps1 or release.sh