Featured image of post Bamboo in a nutshell

Bamboo in a nutshell

Bamboo in a nutshell

What is Bamboo?

Bamboo is Atlassian’s Continuous Integration (CI) and Continuous Deployment (CD) tool that makes sure your code doesn’t break every time Chad from QA pushes an update.

It’s like Jenkins but with a fancier UI and built-in Jira integration.

DevOps teams love it because it automates builds, tests, and releases, reducing the need for manual deployment drama.

A Brief History of Bamboo (Or How We Got Here)

Bamboo was launched by Atlassian in 2007, back when people still thought Subversion was the future.

Bamboo Integrates well with Atlassian’s ecosystem (Jira, Bitbucket, Confluence, and probably a few other tools nobody fully understands).

Infrastructure as Code (IaC) - The Big Picture

In the old days, setting up a new server meant physically plugging in machines, installing software manually, and praying to the IT gods.

Infrastructure as Code (IaC) changed that by letting us define infrastructure with code, so we can automate provisioning, configuration, and management.

Bamboo plays in the IaC world by integrating with Terraform, Ansible, and Kubernetes.

How Does Bamboo Compare to Other Tools?

🏆 Bamboo vs. Jenkins

  • Bamboo: Sleek UI, native Jira/Bitbucket integration, and better support.
  • Jenkins: Free and open-source but requires tons of plugins and setup.

🏆 Bamboo vs. GitLab CI/CD

  • Bamboo: Stronger Jira/Bitbucket integration.
  • GitLab CI/CD: Built directly into GitLab, no separate tool required.

🏆 Bamboo vs. CircleCI

  • Bamboo: Great for Atlassian users.
  • CircleCI: Strong cloud-based CI/CD with fast execution.

10 Common Bamboo Examples

1. Setting Up a Simple Build Plan

1
2
3
4
5
6
7
8
9
plan:
  key: MYPROJ-BUILD
  name: Build My Project
stages:
  - name: Build
    jobs:
      - name: Compile
        tasks:
          - script: mvn clean install

2. Running Unit Tests

1
2
3
4
jobs:
  - name: Test
    tasks:
      - script: mvn test

3. Deploying to Staging

1
2
3
4
jobs:
  - name: Deploy Staging
    tasks:
      - script: kubectl apply -f deployment.yaml

4. Checking Out Code from Git

1
2
3
repositories:
  - name: MyRepo
    url: https://bitbucket.org/myrepo.git

5. Building a Docker Image

1
2
3
4
jobs:
  - name: Build Docker Image
    tasks:
      - script: docker build -t my-app:latest .

6. Pushing Docker Image to Registry

1
2
3
4
jobs:
  - name: Push Docker Image
    tasks:
      - script: docker push my-app:latest

7. Running a Static Code Analysis

1
2
3
4
jobs:
  - name: Code Quality
    tasks:
      - script: sonar-scanner

8. Sending Notifications to Slack

1
2
3
4
jobs:
  - name: Notify Slack
    tasks:
      - script: curl -X POST -H "Content-Type: application/json" -d '{"text":"Build completed!"}' https://hooks.slack.com/services/XXX

9. Deploying to Production

1
2
3
4
jobs:
  - name: Deploy Prod
    tasks:
      - script: ansible-playbook deploy.yml

10. Running a Performance Test

1
2
3
4
jobs:
  - name: Load Test
    tasks:
      - script: locust -f load_test.py

Key Ideas

TopicSummary
What is Bamboo?A CI/CD tool by Atlassian for automating builds, tests, and deployments.
HistoryLaunched in 2007, optimized for Atlassian tools.
Infrastructure as CodeAutomates infrastructure deployment alongside code.
ComparisonCompetes with Jenkins, GitLab CI/CD, and CircleCI.
Common UsageAutomating builds, testing, deployment, and notifications.