I have been working on Jenkins for a while now. Primarily, my focus is on automated deployment of Oracle Fusion applications using Jenkins. I started with ADF deployments which includes following steps:
- Check-out the code from Subversion (SVN)
- Build the EAR file
- Run SonarQube rules for Code Analysis
- Get approval from development lead using Build Promotion Plugin
- Application deployment
- Send status email to initiator
To extend this workflow, I have setup OSB deployments in a similar fashion. There are only two differences in this process:
- Create JAR file instead of EAR
- Apply customization file after every deployment
Below is the list of tools/technologies and Jenkins plugins used in this process.
- Parametrized build plugin
- Build promotion plugin
- Build Pipeline plugin
- SVN – for version control
- configJar – OSB bundled tool to create JAR files
- WLST – Scripts to import and deploy JAR files followed by applying customization file
Here is the step-by-step guide of how to setup Jenkins for OSB projects:
Step 1: Since I have many OSB interfaces, I have setup one job per environment instead of creating one job per interfaces. That helps me in effective management of Jenkins’ jobs. Something like this:
- OSBBuild_Development – For Dev environment
- OSBBuild_Integration – For Integration / Test environment, and so on.
Step 2: Each job will prompt for two parameters – OSB project name and environment where it needs to be deployed.
Step 3: These parameters will be passed on to next job which is to get approval from leads. Leads will receive an email with promotion link
Step 4: Once promoted/approved, an email will be received by deployment team. That email will also contain a link which can be used for deployment.
Step 5: Deployment job is divided into following parts:
- Checkout code from SVN
- Build and Create JAR with same name as provided in the Step 2.
- Invoke WLST script and deploy the JAR on environment selected in Step 2.
This concludes the high-level details of automation process of OSB deployment using Jenkins along with integrated approval process. If you have any query, please contact me.