Skip to content

Latest commit

Β 

History

110 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Boomi CI/CD CLI Framework

License: MIT Bash Platform

A universal, CI/CD-agnostic command-line framework for automating Boomi deployments, package management, and process execution. The core CLI is built with portable Bash scripts that work with any CI/CD platform.

🎯 Overview

This framework provides:

  • Universal CLI - Tool-agnostic bash scripts for Boomi platform operations
  • Multi-Platform Support - Pre-built templates for 6+ CI/CD platforms
  • Parallel Workflows - Advanced Azure DevOps templates for parallel testing and deployment
  • Production-Ready - Battle-tested scripts with error handling, retry logic, and security features
  • Extensible - Easy to customize for your deployment workflows

πŸ“– Project History

Original Development: Boomi Professional Services Organization (PSO) Current Status: Community-maintained (original version is no longer supported by Boomi) Maintainer: Anshuman Padhi

This repository was created to continue development and support for the Boomi CI/CD CLI framework, originally built by Boomi PSO. The goal is to enhance the toolset, improve documentation, and provide ongoing community support for Boomi automation needs.

πŸš€ Quick Start

Step 1: Choose Your Path

Select your use case:

Use Case Documentation
Azure DevOps Azure DevOps Setup Guide
Jenkins Jenkins Setup Guide
GitHub Actions GitHub Actions Setup Guide
CircleCI CircleCI Setup Guide
GitLab CI GitLab CI Setup Guide
TeamCity TeamCity Setup Guide
Standalone CLI Getting Started Guide

Step 2: Quick Install (Standalone CLI)

For complete setup instructions, see Getting Started Guide

# Install dependencies
sudo apt-get install -y jq curl bash  # Ubuntu/Debian
brew install jq curl                  # macOS

# Clone repository
git clone https://github.com/your-org/boomi-cicd-cli.git
cd boomi-cicd-cli

# Set core environment variables
export SCRIPTS_HOME="$(pwd)/cli/scripts"
export WORKSPACE="$(pwd)/workspace"
export authToken="BOOMI_ACCOUNT.username:api_token"
export baseURL="https://api.boomi.com/api/rest/v1/YOUR_ACCOUNT_ID/"

# Test setup
cd $SCRIPTS_HOME
source bin/publishAtom.sh > atoms.html

Next Steps

πŸ“ Project Structure

boomi-cicd-cli/
β”œβ”€β”€ cli/                          # Core CLI (tool-agnostic)
β”‚   └── scripts/
β”‚       β”œβ”€β”€ bin/                  # Bash scripts for Boomi operations
β”‚       β”œβ”€β”€ json/                 # API payload templates
β”‚       └── conf/                 # Configuration files
β”œβ”€β”€ ci-templates/                 # Platform-specific integrations
β”‚   β”œβ”€β”€ azuredevops/
β”‚   β”‚   β”œβ”€β”€ pipelines/            # Azure Pipeline YAML templates
β”‚   β”‚   β”œβ”€β”€ docs/SETUP.md         # Setup guide
β”‚   β”‚   └── examples/             # Example configurations
β”‚   β”œβ”€β”€ jenkins/
β”‚   β”‚   β”œβ”€β”€ pipelines/            # Jenkinsfiles
β”‚   β”‚   β”œβ”€β”€ docs/SETUP.md
β”‚   β”‚   └── examples/
β”‚   β”œβ”€β”€ github-actions/
β”‚   β”‚   β”œβ”€β”€ workflows/            # GitHub Actions workflows
β”‚   β”‚   β”œβ”€β”€ docs/SETUP.md
β”‚   β”‚   └── examples/
β”‚   β”œβ”€β”€ circleci/
β”‚   β”‚   β”œβ”€β”€ config/               # CircleCI configurations
β”‚   β”‚   β”œβ”€β”€ docs/SETUP.md
β”‚   β”‚   └── examples/
β”‚   β”œβ”€β”€ gitlab-ci/
β”‚   β”‚   β”œβ”€β”€ pipelines/            # GitLab CI YAML
β”‚   β”‚   β”œβ”€β”€ docs/SETUP.md
β”‚   β”‚   └── examples/
β”‚   └── teamcity/
β”‚       β”œβ”€β”€ configs/              # TeamCity configurations
β”‚       β”œβ”€β”€ docs/SETUP.md
β”‚       └── examples/
β”œβ”€β”€ docs/                         # Central documentation
β”‚   β”œβ”€β”€ CLI_REFERENCE.md          # Complete CLI command reference
β”‚   β”œβ”€β”€ GETTING_STARTED.md        # Quick start guide
β”‚   └── ARCHITECTURE.md           # Framework architecture
β”œβ”€β”€ examples/
β”‚   └── common-workflows/         # Cross-platform workflow examples
└── README.md                     # This file

πŸ”§ Core CLI Capabilities

The CLI provides scripts for all major Boomi operations:

Package Management

  • createPackages.sh - Create deployment packages
  • deployPackages.sh - Deploy packages to environments
  • undeployPackages.sh - Undeploy packages

Process Management

  • executeProcess.sh - Execute a process
  • deployProcess.sh - Deploy individual processes
  • queryProcess.sh - Query process information

Environment Management

  • queryEnvironment.sh - Get environment details
  • createEnvironment.sh - Create new environments
  • updateExtensions.sh - Update environment extensions

Atom Management

  • queryAtom.sh - Get atom information
  • createAtom.sh - Create atom
  • updateAtom.sh - Update atom configuration

Testing & Validation

  • run_tests.sh - Execute automated test suite for CLI validation
  • mocks/curl - Mock API responses for offline testing

Reporting

  • publishDeployedPackage.sh - Generate deployment reports
  • publishPackagedComponent.sh - List packaged components
  • publishProcess.sh - List processes

See CLI Reference for complete documentation.

πŸ—οΈ Architecture

Design Principles

  1. Separation of Concerns

    • Core CLI logic is independent of CI/CD platform
    • Platform templates are thin wrappers around CLI
  2. Portability

    • Pure Bash scripts (Bash 4.0+)
    • Standard dependencies (jq, curl)
    • No platform-specific features in core CLI
  3. Security

    • Token masking in logs
    • Secure credential handling
    • No hardcoded secrets
  4. Reliability

    • Exponential backoff for API calls
    • Comprehensive error handling
    • Dependency validation on startup

How It Works

flowchart TB
    subgraph cicd["CI/CD Platform Layer"]
        direction LR
        Jenkins["Jenkins"]
        ADO["Azure DevOps"]
        GHA["GitHub Actions"]
        CircleCI["CircleCI"]
        GitLab["GitLab CI"]
    end
    
    subgraph wrapper["Platform Template Layer"]
        Wrapper["Platform Wrapper Scripts<br/>(deploy_packages.yaml/sh)"]
    end
    
    subgraph core["Core CLI Layer"]
        CLI["Universal CLI Scripts<br/>(deployPackages.sh, executeProcess.sh, etc.)"]
    end
    
    subgraph boomi["Boomi Platform"]
        API["AtomSphere REST API"]
    end
    
    cicd -->|"Orchestrates<br/>Workflow"| wrapper
    wrapper -->|"Sets env vars<br/>& sources"| core
    core -->|"HTTP REST<br/>calls"| boomi
    
    style cicd fill:#e1f5ff,stroke:#01579b,stroke-width:2px
    style wrapper fill:#fff3e0,stroke:#e65100,stroke-width:2px
    style core fill:#f3e5f5,stroke:#4a148c,stroke-width:2px
    style boomi fill:#e8f5e9,stroke:#1b5e20,stroke-width:2px
Loading

Architecture Layers:

  1. CI/CD Platform - Your chosen automation platform (orchestrates workflows)
  2. Platform Templates - Thin wrapper scripts (set environment variables, call core CLI)
  3. Core CLI - Tool-agnostic Bash scripts (business logic, API calls)
  4. Boomi Platform - AtomSphere REST API (target system)

πŸ“š Documentation

Platform-Specific Guides

πŸ’‘ Use Cases

  • Automated Deployments - CI/CD pipelines for Boomi processes
  • Multi-Environment Promotion - Dev β†’ QA β†’ UAT β†’ Production
  • Scheduled Deployments - Nightly or weekend releases
  • Hotfix Deployments - Rapid deployment for critical fixes
  • API Testing - Integrate with Postman/Newman for API validation
  • Rollback - Undeploy packages when issues occur

πŸ”’ Security Best Practices

  1. Never commit credentials - Use CI/CD secret management
  2. Mask tokens in logs - Framework automatically masks authToken
  3. Use protected branches - Restrict production deployments
  4. Implement approvals - Manual gates for production
  5. Audit deployments - Store artifacts and logs

🀝 Contributing

Contributions are welcome! Areas for contribution:

  • Additional CI/CD platform templates
  • Enhanced error handling
  • Additional Boomi API operations
  • Documentation improvements

πŸ“‹ Requirements

Core CLI

  • Bash 4.0+
  • jq (JSON processor)
  • curl (HTTP client)

Optional: SonarQube Integration

For code quality scanning with sonarScanner.sh:

Download SonarQube Scanner:

cd sonarqube
# Download from official source
curl -L -O https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.8.0.2856.zip
unzip sonar-scanner-cli-4.8.0.2856.zip

Note: The sonarqube/ directory is excluded from Git to keep the repository lightweight. Download the scanner separately if you need code quality integration.

CI/CD Platforms

  • See platform-specific setup guides for agent requirements

πŸ› Troubleshooting

Common Issues

Error: jq: command not found

sudo apt-get install jq  # Ubuntu/Debian
sudo yum install jq      # RHEL/CentOS
brew install jq          # macOS

Error: SCRIPTS_HOME not set

export SCRIPTS_HOME="/path/to/boomi-cicd-cli/cli/scripts"

Error: Authentication failed

# Verify token format: Base64(ACCOUNT.username:api_token)
echo -n "BOOMI_ACCOUNT.user:token" | base64

See platform-specific troubleshooting in setup guides.

πŸ“ž Support

  • Documentation: See docs/ directory
  • Platform Issues: Check platform-specific SETUP.md
  • CLI Issues: Review CLI Reference

πŸ“œ License & Acknowledgments

This project is licensed under the MIT License - see the LICENSE file for details.

Original work by Boomi Professional Services Organization (PSO).
Currently maintained and enhanced by Anshuman Padhi (2026-present).

Note: This is a community-driven project and is not officially supported by Boomi.

Contributing

This is now a community-maintained project. Contributions, bug reports, and feature requests are welcome! See CONTRIBUTING.md for guidelines.


Ready to get started? Choose your CI/CD platform above and follow the setup guide!

Releases

Packages

Contributors

Languages