Build Pipelines
This document describes the CDAP build pipelines on Cask's build system. There are two main pipelines, the CDAP release pipeline, and the CDAP development pipeline.
Release Pipeline
Builds: CDAP-BUT, CDAP-DA
The release pipeline consists of two builds, to be run in sequence. The first build is CDAP-BUT, or Build and Unit Test, which produces all of the artifacts for a CDAP release and deploys JARs to Sonatype OSS for public consumption. Snapshot JARs are available immediately. Release JARs are stored in a staging repository and must be released before they are accessible.
The release pipeline only processes the develop branch and release branches, which match a release/.* pattern. The release branches must be created manually when the release branch is created. The second build, CDAP-DA, or Deploy Artifacts, deploys the release artifacts created by CDAP-BUT to the appropriate remote storage locations for public consumption. CDAP-DA requires artifacts from CDAP-BUT, but it is not triggered by CDAP-BUT and must be run manually to deploy.
Development Pipeline
Builds: CDAP-DRC, CDAP-DUT, CDAP-RUT
The development pipeline consists of three builds, in two stages. The first build is CDAP-DRC, or RAT and Checkstyle, which performs RAT and checkstyle checks on the given branch.
The development pipeline only processed the develop branch and bugfix or feature branches, which match a (bugfix|feature).* pattern. Branches which match (bugfix|feature)/.* will trigger CDAP-DUT whereas branches which match (bugfix|feature)_release.* will trigger CDAP-RUT. The CDAP-DUT build merges against develop, whereas the CDAP-RUT build merges against the latest CDAP release branch, which is currently "release/3.5". If a branch needs to merge against a different release, the plan branch will need to be configured manually to do so.