...
High Level Artifact Build Flow
Ideally, the docker image build process should be fully separated from the Maven (Java/Python/etc.) artifact build process, but this doesn't seem to have been applied in ONAP (?) This means:
- One set of Jenkins jobs will build and deploy Maven artifacts to Nexus
- One set of Jenkins jobs will build the docker images using Maven artifacts already deployed to Nexus before
- Jenkins job dependencies should be set up so that the former can trigger the latter
Once we include considerations of the SNAPSHOT/ STAGING/RELEASE docker tags, we end up with the following general development/release flow:
- Produce Maven build artifacts, build compile them into docker images and test them with CSIT locally.
- Push the changes to gerrit to produce SNAPSHOT Maven build artifacts and docker images from submitted patch and have them tested by CSIT in Jenkins review verification.
- Merge verified changes to produce SNAPSHOT Maven build artifacts and docker images from master and have them tested by CSIT againin Jenkins merge verification.
- Release the artifacts that pass merge verification.
- Produce STAGING docker images from the released artifactsSuccessfully verified docker images are tagged with STAGING. These are applicable for higher level E2E test flows.
- Produce RELEASE docker image images by picking one of the candidate STAGING docker images that have passed E2E tests.
...