Sign inSign up

pythonicshahdev/boomi-cicd-jenkins

By pythonicshahdev

โ€ขUpdated 3 months ago

A self-contained Jenkins CI/CD environment for demonstrating Boomi DevOps

Image
Developer tools
0

2.3K

pythonicshahdev/boomi-cicd-jenkins repository overview

โ Boomi CI/CD Jenkins

A self-contained Jenkins CI/CD environment for demonstrating Boomi DevOps. This environment is pre-configured and spun up with a single docker run command, featuring two pipelines ready on first start.


โ ๐Ÿ›  Features & What's Included

  • Automatic Component Discovery โ€” Finds deployable Boomi components (process, webservice.external, webservice.internal, flowservice, processroute, tpgroup, customlibrary, certificate) within a configured folder.
  • Automated Packaging & Deployment โ€” Leverages the Boomi Platform API using native Boomi component versions, always selecting the most recently created package regardless of version string format.
  • Multi-Environment Pipeline โ€” Built-in manual approval gates for secure DEV โ†’ STG โ†’ PROD promotions.
  • Lint Stage โ€” Fetches component XML from Boomi and runs XPath quality rules, archiving a report on every pipeline run.
  • GitHub & Bitbucket Support โ€” Release repo can be hosted on either platform via SSH key or HTTPS token.
  • Optional SonarQube Integration โ€” Skip by leaving credentials empty.
  • Instant Readiness โ€” Pre-configured Jenkins instance with both pipelines immediately available on first start.

โ ๐Ÿ“‹ Requirements

Before running the container, ensure you have the following:

  • ACCESS_TOKEN โ€” Contact Shah to obtain this.
  • Boomi API Credentials โ€” Account ID, username, and API token.
  • Release Repo Access โ€” SSH key or HTTPS token for your GitHub or Bitbucket release repo (see setup steps below).
  • Boomi Atom โ€” Must be attached to your target environment.

โ ๐Ÿ”‘ Release Repo Authentication (One-Time Setup)

Choose either SSH or HTTPS depending on your preference.

โ Option A โ€” SSH Key (works with GitHub and Bitbucket)
ssh-keygen -t ed25519 -C "jenkins-ci" -N "" -f ~/.ssh/bitbucket_jenkins
cat ~/.ssh/bitbucket_jenkins.pub

Add the public key as a deployment key on your release repo:

  • Bitbucket โ†’ Repo Settings โ†’ Access keys โ†’ Add key
  • GitHub โ†’ Repo Settings โ†’ Deploy keys โ†’ Add deploy key (enable Allow write access)
โ Option B โ€” HTTPS Token (GitHub, simpler)

Create a GitHub Personal Access Token with repo scope at GitHub โ†’ Settings โ†’ Developer settings โ†’ Personal access tokens.

No key generation or deploy key setup required โ€” pass the token as RELEASE_REPO_TOKEN at container startup.


โ ๐Ÿš€ Quick Start

โ Using SSH (GitHub or Bitbucket)
docker run -d --name boomi-jenkins -p 8080:8080 \
  -e ACCESS_TOKEN=<provided_token> \
  -e JENKINS_ADMIN_PASSWORD=<your_password> \
  -e BOOMI_USERNAME=<api_user_email> \
  -e BOOMI_PASSWORD=<BOOMI_TOKEN.xxx> \
  -e BOOMI_ACCOUNT_ID=<account_id> \
  -e BOOMI_FOLDER_NAME=<folder_name> \
  -e [email protected]:<username>/<repo>.git \
  -e BOOMI_ENV_DEV=<environment_name> \
  -v ~/.ssh/bitbucket_jenkins:/run/secrets/bitbucket_ssh_key:ro \
  -v jenkins_home:/var/jenkins_home \
  pythonicshahdev/boomi-cicd-jenkins:latest
โ Using HTTPS Token (GitHub)
docker run -d --name boomi-jenkins -p 8080:8080 \
  -e ACCESS_TOKEN=<provided_token> \
  -e JENKINS_ADMIN_PASSWORD=<your_password> \
  -e BOOMI_USERNAME=<api_user_email> \
  -e BOOMI_PASSWORD=<BOOMI_TOKEN.xxx> \
  -e BOOMI_ACCOUNT_ID=<account_id> \
  -e BOOMI_FOLDER_NAME=<folder_name> \
  -e RELEASE_REPO_URL=https://github.com/<username>/<repo>.git \
  -e RELEASE_REPO_TOKEN=<github_pat> \
  -e BOOMI_ENV_DEV=<environment_name> \
  -v jenkins_home:/var/jenkins_home \
  pythonicshahdev/boomi-cicd-jenkins:latest

Jenkins will be available at http://localhost:8080 once startup completes (~60 seconds).


โ โš™๏ธ Environment Variables

โ Required
VariableNotes
ACCESS_TOKENContact Shah to obtain
JENKINS_ADMIN_PASSWORDSets the Jenkins admin password
BOOMI_USERNAMEBoomi API user email
BOOMI_PASSWORDFormat: BOOMI_TOKEN.<token> โ€” not your login password
BOOMI_ACCOUNT_IDFormat: companyname-XXXXXX โ€” no trailing spaces
BOOMI_FOLDER_NAMETop-level AtomSphere folder to scan
RELEASE_REPO_URLSSH or HTTPS URL of your release repo
BOOMI_ENV_DEVBoomi environment name for DEV
โ Release Repo Auth (one of the following)
VariableNotes
(SSH volume mount)-v ~/.ssh/your_key:/run/secrets/bitbucket_ssh_key:ro
RELEASE_REPO_TOKENGitHub PAT โ€” use with an https:// RELEASE_REPO_URL
RELEASE_REPO_USERNAMEGitHub username for HTTPS auth. Defaults to oauth2 if not set
โ Optional
VariableDefaultNotes
RELEASE_BRANCHmainBranch to read/write release.json
BOOMI_ENV_STGโ€”Leave empty to skip Stage
BOOMI_ENV_PRODโ€”Leave empty to skip Prod
DEPLOY_CHANGED_ONLYfalseOnly deploy components packaged on/after SINCE_DATE
SINCE_DATETodayFormat YYYY-MM-DD
BOOMI_ATOM_NAMEโ€”Comma-separated atom names. Empty = full environment
SONARQUBE_URLโ€”Leave empty to skip SonarQube
SONARQUBE_PROJECT_KEYboomi-cicdSonarQube project key
SONARQUBE_TOKENโ€”SonarQube auth token

โ ๐Ÿ”„ Two Pipelines

PipelineTriggerWhat it does
boomi-release-generatorManual or webhookDiscovers components, picks the most recently created package version, commits release/release.json
boomi-cicd-pipelineManual onlyLints XML, deploys DEV โ†’ STG โ†’ PROD with manual approval gates

Webhook (optional): http://<host>:8080/generic-webhook-trigger/invoke?token=boomi-release Supports both GitHub and Bitbucket push webhooks.


โ โš ๏ธ Upgrading from an Earlier Version

Breaking change: The internal Jenkins credential was renamed in a recent release. Upgrading with an existing jenkins_home volume will cause pipeline clone steps to fail.

Wipe the volume before starting the new image:

docker rm -f boomi-jenkins
docker volume rm <your_jenkins_home_volume>
docker run ... pythonicshahdev/boomi-cicd-jenkins:latest

All configuration is baked into the image โ€” nothing is lost by wiping the volume.


โ ๐Ÿ— Platforms

linux/amd64 ยท linux/arm64

Tag summary

Content type

Image

Digest

sha256:b183418b3โ€ฆ

Size

503.4 MB

Last updated

3 months ago

docker pull pythonicshahdev/boomi-cicd-jenkins