This repository has the Jenkins Jobs required to launch Boomi CI/CD reference implemetation. The Jobs must be installed/copied into a working Jenkins installer 2.x or higher.
Must need administration access on Jenkins server and accesss to the Jenkins file system to install the jobs. This version only works on a Unix/Linux implementation of Jenkins.
- Install the CLI utility and its pre-requisites in the Jenkins server from here
- Install the following Jenkins plugins required for Boomi CI/CD
- cloudbees-folder
- folder-properties
- purge-job-history
- build-publisher
- htmlpublisher
- build-user-vars-plugin
- secure-requester-whitelist
- Copy the Account_{Rename} folder under the ${JEN1KINS_HOME}/jobs directory on the Jenkins server
- Manage Jenkins-> Configure System -> Go to jenkins-url/configure and set the Shell Executable
- Scroll down to Shell
- Shell executable: /bin/bash - Manage Jenkins-> Configure Global Security ->
- Scroll down to Authorize JSONP or primitive XPath requests by whitelist
- Check the box "Allow requests without Referer"
Restart Jenkins after copying the folder.
Configure Jenkins to connect to Boomi Account. (This assume firewall/proxy b/w Jenkins and Boomi AtomSphere is set). There are two GIT repos that can be configured (both optional). One is the Git Component Repo where the component XMLs will be automatically stored. The other the GIT Release Repo where the Boomi components can be deployed using a release template. Examples
- Login to Jenkins and select the Account {Rename} folder & click configure. Review and update all the fields as required.
- Update the Display Name
- Update the the folder properties Name: accountId Value: <>
- Update the the folder properties Name: SCRIPTS_HOME Value: <Full path of CLI /scripts folder>
- Update the the folder properties Name: SONAR_HOME Value: <Full path of CLI / sonar-scanner folder>
- Update the the folder properties Name: LOCAL_ATOM_INSTALL_DIR Value: <ATOM_INSTALL_DIR on Jenkins>
- Update the the folder properties Name: gitComponentRepoURL Value: . If GIT requires credentials use a secretText below
- Update the the folder properties Name: gitComponentRepoName Value: <Top level name of the GIT Repo; usually the part before .git>
- Update the the folder properties Name: gitComponentOption Value: <CLONE| TAG> if you use CLONE it clones the repo and pushes the content. Else creates a release tag (zip)
- Update the the folder properties Name: gitComponentUserName Value: <git --config global.username>.
- Update the the folder properties Name: gitComponentUserEmail Value: <git --config global.email>.
- Update the the folder properties Name: gitReleaseRepoAPIURL Value: The API URI for the gitReleaseRepo
- Update the the folder properties Name: sonarHostURL Value: .
- Update the the folder properties Name: sonarProjectKey Value: <Name of SonarProject (if using Sonar)>
- Select the Credentials menu from the left
- Update the authToken to the Boomi API Token (Format) BOOMI_TOKEN.user@company.com:bOomi-aPi-ToKen-
- Update the sonarToken
- Update the gitComponentRepoURL. If the gitComponentRepo has username and password
- Update the gitReleaseRepoUserPassword. To connect to gitReleaseRepo to recieve WebHooks. See
- Update the gitReleaseRepoAPIToken. To connect gitReleaseRepo to update the commit status using an username and API token.
- Update the JENKINS_TOKEN. This is used to trigger Jobs using Jenkins API from DynamicGitJob jobs. See
- Click Rename and rename the folder name to Account_YOUR ACCOUNT
- Click on the Account folder, select the the Publish Reports tab
- Click on List Atoms Job
- And click on Build Now
- Once the build is compelete open refresh the output and select the html report
To run any of the Jobs listed below:
- Click on the appropriate tab/job name
- Select "Build with Parameters"
- Pass the required parameters and click Build
- Review the console output or Jenkins run output for success/error notifications
Job Name | Notes |
---|---|
Change All Listener Status | Changes all the Listener Status on a given Atom |
Change Listener Status | Changes the Listener Status of a process on a given Atom |
Continuous Package Deployment Pipeline | Executes a pipeline to create, deploy package, run separate Test process, validates process and promotes to another Env |
Continuous Process Deployment Pipeline | Executes a pipeline to deploy a process, run separate Test process, validates process and promotes to another Env |
Create Cloud Atom | Creates a Cloud Atom in a given Cloud |
Create Environment | Creates an Environment in an Account |
Create Environment and Attach Atom | Creates Environment and attaches an Atom |
Create Packages | Creates Package Deployment for a single packages using processName or componentId. Alt will publish a report to GIT and integrate with SonarQube |
Create Packages | Creates Package Deployment for multiple packages using processNames or componentIds. Alt will publish a report to GIT and integrate with SonarQube |
Create Process Schedule | Creates Basic Process Schedule. For Advance schedules pleas use the AtomSphere UI |
Delete Atom and Env | Delete Atom and Attached Environment |
Delete Local Atom | Deletes Local Atom (Local deployed on Jenkins) |
Deploy Local Process and Publish to GIT | Deploy a process to Local Atom and extract the component XML to GIT (Legacy Deployment) |
Deploy Multiple Processes | Deploy multiple-processes to an Environment (Legacy) |
Deploy Package | Creates and Deploy a single package using componentId or processName to an Environment. Alt will publish a report to GIT and integrate with SonarQube |
Deploy Packages | Creates and Deploys multiple-packages using componentIds or processNames to an Environment. Alt will publish a report to GIT and integrate with SonarQube |
DynamicGitJob_Dev | This is the job points to the specific "Development" git branch. See notes below |
DynamicGitJob_Test | This is the job points to the specific "Test" git branch. See notes below |
Execute Process | Executes a process on a given Atom |
Get Installer Token | Get a InstallerToken |
Get Cloud Installer Token | Get a InstallerToken for a Cloud Molecule. Must pass the cloudId |
Install Local Atom | Install an Atom local to Jenkins |
List All Environments | Publishes a report of all Environments |
List Atoms | Publishes a report of all Atoms |
List Deployed Packages | Publishes a report of Deployed Components in an Env |
List Package Components | Publishes a report of all Packaged Components of a given Version |
List Processes | Publishes a report of all Process |
Promote Multiple Processes | Promotes Multiple Process from one Env to another (Legacy) |
Promote Process | Promotes a single Process from one Env to Another |
Publish Package to GIT and Sonar | Publish a package to GIT and perform Sonar validation |
Publish Packages to GIT | Publish a package to GIT and perform GIT |
Query Atom | Query status of a single atom |
Query Execution Record | Query the status of a Process Execution Record within a given timespan |
Start Local Atom | Start Local Atom |
Stop Local Atom | Stop Local Atom |
Undeploy Package | Undeploy a Package component |
Undeploy Process | Undeploy a Process (Legacy) |
Update Environment Extensions | Use the JSON file created in the Create Package process to update envirnoment extensions. Use valueFrom to replace secret value with Variables |
Update Process Schedule Status | Update Process Schedule Status of a single process |
Update Shared Server | Update shared webserver details of a given Atom |
You can clone the existing Boomi Folder and change the required Account properties to configure a new Account for Boomi CI/CD on the same Jenkins folder. Note: If the Build or Build with parameter menu is not available. Then disable the job and Enable this. Or restart the Jenkins.
- This is the job points to the specific "Development" git branch.
- For multiple builds pointing to Test, PROD this job must be cloned and the "Branches to build" and "JOB_ENV" properties must be updated accordingly.
- GIT adminstrators must ensure controls to limit access to non-development GIT branches.
- Here is a link to set up GIT & Jenkins to trigger Jenkins Build from GIT
- Click Configure and update
- Source Code Management - [Enter GIT Release Repo Here]
- Credentials - Ensure the correct value is selected
- Branches to build - This has to be set to the dev/* branch
- In the build tab update. Note these properties can be set at the folder level or removed. If the JENKINS_URL is set.
- export JENKINS_URL="http://localhost:8080/"
- export JOB_URL_BASE="http://localhost:8080/job/Account_Boomi"
- export JENKINS_USER="admin"
- Update the property export JOB_ENV="Development" to point to the Boomi Development environment.
- This is to ensure the json configuration matches the target environment and prevent a Development config/job/git repo run jobs targetted to a non-development environment.
- Jenkins job can send a status update back to GIT as part of the Post Build Step. For set up here. This has to be done for all relevent Jenkins jobs like Deploy Packages, Deploy Package, Update Extensions, Create Process Schedules
This image is not supported at this time. Please leave your comments at https://community.boomi.com/s/group/0F91W0000008r5WSAQ/devops-boomi