Sobes.tech
Middle+

What is your experience with Bamboo and how extensively have you used it in your projects?

sobes.tech AI

Answer from AI

Over 3 years. Used Bamboo as the main CI/CD tool in two projects, including integration with Jira and Bitbucket.

Main areas of use:

  • Build: Setting up build plans for Java (Maven, Gradle), Node.js (npm), Python (pip). Using build agents (Dedicated Agents, Remote Agents) for parallelization and scaling.
  • Testing: Integration with JUnit, Mocha/Jest, Pytest. Automatic running of unit, integration, and functional tests after build. Configuring test result analysis and reporting.
  • Deployment: Creating Deployment Projects for automatic deployment of artifacts to various environments (Development, Staging, Production). Using Deployment Stages and Tasks to perform necessary steps (pull image, run container, execute scripts). Configuring Zero-downtime deployment.
  • Configuration Management: Working with Plan and Deployment Variables, Secret Variables. Using tasks to interact with configuration stores (Vault).
  • Triggers: Setting up automatic triggers on repository changes (Bitbucket webhook), on schedule, and manual runs.
  • Plugins: Using various plugins to extend functionality, such as for integration with Docker, SonarQube, Slack. Developing custom tasks if needed.
  • Monitoring and Logging: Setting up task and plan execution monitoring. Log analysis for troubleshooting.

Example of a deployment task in Bamboo:

# Example step in Bamboo Deployment Project
deploymentTasks:
  - task: "Script" # Task type
    description: "Pull Docker image and run container"
    script: |
      docker pull my-registry/my-app:${bamboo.build.number} # Bamboo variable
      docker stop my-app || true # Stop old container if exists
      docker rm my-app || true # Remove old container
      docker run -d --name my-app -p 80:80 my-registry/my-app:${bamboo.build.number}
    shell: "/bin/bash"

Using Bamboo variables for deployment adaptation:

# Example of defining variables in Bamboo Plan or Deployment Project
myServiceHost=myservice.dev.example.com
databasePassword=password123 # Example Secret Variable

I have used Bamboo to create complex CI/CD pipelines, including build, testing, code quality analysis, Docker image creation, repository publication, and automatic deployment to multiple environments. I have experience troubleshooting build and deployment issues in Bamboo.