With our current release we are introducing a new build engine in Oracle Developer Cloud. The new build engine also comes with a new enhanced functionality and user interface in Oracle Developer Cloud Service ‘Build’ tab for defining build pipelines visually. This was the much awaited functionality in Oracle Developer Cloud from the Continuous Integration and Continuous Delivery perspective.
The below screen shot shows the user interface for the new ‘Build’ tab in Oracle Developer Cloud. A quick glance at it tells you that there is a new tab called ‘Pipeline’ being added alongside the ‘Jobs’ tab. So the concept of creating build jobs remains the same. We have Pipeline in addition to the build jobs that you can create.
Creating of build job has gone through a change as well. When you try to create a build job by clicking the ‘+New Job’ button in the Build tab, you will have a dialog box to create a new build job. The first screen shot shows the earlier ‘New Job ‘ dialog where you could give the job name and select to create a freestyle job or copy an existing build job.
The second screen shot shows the latest ‘New Job’ dialog that comes up in Oracle Developer Cloud. It has a Job name, description (which you could give in the build configuration interface earlier), create new/copy existing job options, check box to select ‘use for merge request’ and the most noticeable addition the Software Template dropdown.
Dialog in the old build system:
Dialog in the new build system:
Description: To give the job description, which you could give in the build configuration interface earlier. You will still be able to edit it in the build configuration as part of the settings tab.
Use for Merge Request: By selecting this option, your build will be parameterized to get the Git repo URL, Git repo branch and Git repo merge id and perform the merge as part of the build.
Software Template: With this release you will be using your own Oracle Compute Classic to run/execute your build jobs. Earlier the build jobs were executed on internal pool of compute. This gives you immense flexibility to configure you build machine using the software runtimes that you need using the user interface that we provide as part of the Developer Cloud Service. These configuration will stay and the build machines will not be claimed back as it is your own compute instance. This will also enable you to run multiple parallel builds without any constraint by spinning up new computes as per your requirements. You will be able to create multiple VM templates with different software configurations and choose them while creating build jobs as per your requirement.
Please use this link to refer the documentation for configuring Software Templates.
Build Configuration Screen:
In the build configuration tab you will now have two tabs as seen in the screen shot below.
As seen in the screenshot below, the build configuration tab would further have Source Control tab, Build Parameters, Build Environment, Builders and Post Build sub tabs.
While in the build settings tab, you will have sub tabs such as General, Software, Triggers, and Advanced. Below are the brief description of each tab:
General: As seen in the screenshot below is for generic build job related details. It is similar to the Main tab which existed previously.
Software: This tab is a new introduction in the build configuration to support Software Templates for build machines, which is getting introduced in our current release as described above. It will let you change/see the software template that you have selected while creating the build job and also let you see the software (runtimes) available in the template. Please see the screenshot below for your reference.
Triggers: You will be able add build triggers like Periodic Trigger and SCM Polling Trigger as shown in the screenshot below. This is similar to the Triggers tab that existed earlier.
Advanced: Consists of some build settings related to aborting job conditions, retry count and adding timestamp to the console output.
There are four tabs in the Build Configuration tab as described below:
Source Control: You can add Git as the Source Control from the dropdown-‘Add Source Control’.
Build Parameters: Apart from the existing build parameters like String Parameter, Password Parameter, Boolean Parameter, Choice Parameter, there is a new parameter type being added called Merge Request Parameters. The Merge Request Parameters get added automatically when the checkbox ‘Use for Merge Request’ is selected while creating the build job. This will add Git repo URL, Git repo branch and Git repo merge id as the build parameters.
Build Environment: A new Build Environment settings have been added apart from the existing Xvfb Wrapper, Copy Artifacts and Oracle Maven Repository Connection, which is SonarQube Settings.
SonarQube Settings – For static code analysis using SonarQube tool. I will be publishing a separate blog on SonarQube in Developer Cloud.
Builders: To add build steps. There is an additions to the build steps, which is Docker Builder.
Docker Builder: Support to build Docker images and execute any Docker command. (Will be releasing a separate blog for dockers.)
Post Build: To add Post Build configurations like deployment. SonarQube Result Publisher is the new Post Build configuration added in the current release.
After creating and configuring the build jobs, you can create a pipeline in the Pipelines tab using these build jobs. You can create a new pipeline using the ‘+New Pipeline’ button.
You will see the below dialog to create a new pipeline.
On creation of the Pipeline, you can drag and drop the build jobs using the Pipeline visual editor, sequence and connect the build jobs as per the requirement.
You can also add conditions to the connection for execution by double clicking the links and selecting the condition from the dropdown, as shown below in the screenshot.
Once completed, the pipeline will be listed in the Pipelines tab as shown below.
You can start the build manually using the play symbol button. We can also configure it to Auto Start when one of the job is executed externally.
Stay tuned for more blogs on latest features and capabilities of Developer Cloud Service.
**The views expressed in this post are my own and do not necessarily reflect the views of Oracle