Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

releasePhase.sh is an orchestration script that runs the 14 15 phases in the release process. It calls the other scripts in the script set to perform whatever actions are required at each phase in the execution process. It has a function that codifies each phase of the release.

Each phase of the release is executed by calling getReleaseData.sh to update the status of the release phase followed by releasePhase.sh to actually perform the release. Note that it is safe to run getReleaseData.sh multiple times in a single release. This may be necessary if, for example, the merge job for a release commit is slow to run causing a phase to complete slowly. Always keep an eye on the output of getReleaseData.sh to verify that the release is proceeding correctly.to run getReleaseData.sh multiple times in a single release. This may be necessary if, for example, the merge job for a release commit is slow to run causing a phase to complete slowly. Always keep an eye on the output of getReleaseData.sh to verify that the release is proceeding correctly.

Release Phases

PhaseActions Performed
1Update internal references in policy/parent
2Release policy/parent
3

Update snapshots in policy/parent
Update policy/parent references in policy/common
Update policy/parent references in policy/docker

4Release policy/common Maven artifacts
Release policy/docker Docker images
5Update snapshots in policy/common
Update snapshots in policy/docker
Update policy/parent and policy/common references in policy/models
6Release policy/models Maven artifacts
7Release policy/models Docker images
8Update snapshots in policy/models

Update policy/parent, policy/common, policy/models and base Docker references in policy/api
Update policy/parent, policy/common, policy/models and base Docker references in policy/pap
Update policy/parent, policy/common, policy/models and base Docker references in policy/distribution
Update policy/parent, policy/common, policy/models and base Docker references in policy/clamp
Update policy/parent, policy/common, policy/models and base Docker references in policy/apex-pdp
Update policy/parent, policy/common, policy/models and base Docker references in policy/drools-pdp
Update policy/parent, policy/common, policy/models and base Docker references in policy/xacml-pdp

9

Release policy/api Maven artifacts
Release policy/pap Maven artifacts
Release policy/distribution Maven artifacts
Release policy/clamp Maven artifacts
Release policy/apex-pdp Maven artifacts
Release policy/drools-pdp Maven artifacts
Release policy/xacml-pdp Maven artifacts

10

Release policy/api Docker images
Release policy/pap Docker images
Release policy/distribution Docker images
Release policy/clamp Docker images
Release policy/apex-pdp Docker images
Release policy/drools-pdp Docker images
Release policy/xacml-pdp Docker images

11Update snapshots in policy/api
Update snapshots in policy/pap
Update snapshots in policy/distribution
Update snapshots in policy/clamp
Update snapshots in policy/apex-pdp
Update snapshots in policy/drools-pdp
Update snapshots in policy/xacml-pdp
Update policy/parent, policy/common, policy/models, policy/drools-pdp and base Docker references in policy/drools-applications
Update policy/parent, policy/common, policy/models, policy/apex-pdp and base Docker references in policy/gui
12

Release policy/drools-applications Maven artifacts
Release policy/gui Maven artifacts

13

Release policy/drools-applications Docker images
Release policy/gui Docker images

14

Update snapshots in policy/drools-applications
Update snapshots in policy/gui

15Store the updated pf_release_data.sh file in policy/parent

Performing a Release

A Release is where the all the Maven artifacts and Docker images are released on the current branch and and the snapshot version of the repositories is stepped.

...

The commit is reviewed and merged as normal.

Subsequent Phases

Subsequent phases proceed in a similar manner with executions of getReleaseData.sh followed by executions of releasePhase.sh.

Branching the Repositories

...