Jenkins pipeline library with common functionalities for CI/CD environments, mainly targeted for the implementation of the SQA baseline requirements from https://indigo-dc.github.io/sqa-baseline/
Taking into account the current contributing guide lines, we can automate some of the manual procedures between release stages:
first manual step (checkout previous release into the new jenkins/ and release/ branches)
a push into release/ trigger a hook in github that will create a PR into jenkins/release/
jenkins job will be launched from the previous created PR and the defined steps will run from Jenkinsfile
Also any changes to jenkins/release/* will also trigger a job in jenkins.
For stable/ branch this will require to set a trigger condition, so stable branch will be created (for instance closing a milestone for a release). With that the branch stable/ should be created with the contents from the associated release/ and also the same for jenkins/release/ into jenkins/stable/.
A jenkins job will be triggered after the jenkins/stable/ creation. That will use same Jenkinsfile that with when clause will distinguish between the pipeline for release and stable branches.
Jenkins job for stable branch will trigger jobs for all registered use cases and test the current version. After the job validation from all linked use cases, a new tag will be created in github for the release version.
Note: .sqa and Jenkinsfile are created manually in jenkins/release/ branch that will have all CI related code, so we can keep library release branch clean. CI code can also be modified later in jenkins/stable/ branch and jenkins/release/ for new versions can be merged from previous jenkins/release/ and jenkins/stable/* as needed.
Taking into account the current contributing guide lines, we can automate some of the manual procedures between release stages:
For stable/ branch this will require to set a trigger condition, so stable branch will be created (for instance closing a milestone for a release). With that the branch stable/ should be created with the contents from the associated release/ and also the same for jenkins/release/ into jenkins/stable/. A jenkins job will be triggered after the jenkins/stable/ creation. That will use same Jenkinsfile that with when clause will distinguish between the pipeline for release and stable branches. Jenkins job for stable branch will trigger jobs for all registered use cases and test the current version. After the job validation from all linked use cases, a new tag will be created in github for the release version.
Note: .sqa and Jenkinsfile are created manually in jenkins/release/ branch that will have all CI related code, so we can keep library release branch clean. CI code can also be modified later in jenkins/stable/ branch and jenkins/release/ for new versions can be merged from previous jenkins/release/ and jenkins/stable/* as needed.