At the end of every sprint, IG needs to be branched for easing Identity Cloud consumption of recent stable product artifacts.
Step-by-step guide
Determine the commits from where to branch.
- Leads agree on the commit from
forgeops:stable
that is a point where all PIT tests passed - Look at the content of /
docker/7.0/ig/Dockerfile
and grab the IG base docker image tag - From that commit, it should be easy to spot the right lane in the Engineering dashboard
- Go to https://dashboard.engineering.forgerock.com/pipeline/IG
- It should be an all green line with forgeops promotion and all PIT tests passed
- Open any of the PyForge report, and grab both the IG Doc SHA and PyForge SHA
Now that we have the 3 commits (IG, Doc and PyForge), we can create branches:
- Create an IG branch based on the IG SHA:
idcloud-<sprint-number>
- Update the maven version to avoid conflicts with
master
branch
- Update the maven version to avoid conflicts with
- Do the same for IG Doc (branch from commit, change POM version number)
At this point, Jenkins should have done its magic and both IG and Doc artifacts should be available to PyForge.
Now, we need to update IG's pipeline in order to tell Jenkins to run a given version of PyForge (otherwise it will run master
of PyForge):
Go to
/jenkins-script/docker/pyforge/Dockerfile
and update the FROM line, by changingstable
to the PyForge SHAFROM gcr.io/engineering-devops/ci/pyforge-configured:stable
Go to
/jenkins-script/libs/pyforge.groovy
and fix the Doc version (2 places) to the version of the Doc branchIGDOC_VERSION : commonModule.getProjectVersion(),
It's possible that some tests need to be disabled on a case by case basis, do that in pyforge.groovy
as well.
We're now ready to build the IG branch.