Continuous Integration with Bamboo

Bamboo is a continuous integration server developed by Atlassian to automate version management for software applications.
So what is “continuous integration”?
Continuous integration means testing every change in the system. It aims to integrate the different modules developed in the software process with minimum problems.
- It reduces the risks of projects.
- It reduces the continuous repetitive manual controlled processes.
- It improves the quality of feedback received.
- It provides rapid development as a team for developers who usually develop individual modules.
There are many tools for continuous integration:
- Bamboo functions as a continuous integration server.
- Bamboo is a crucial continuous integration tool as it supports many version control systems, has various notification systems, and has many other features.
- In addition to Bamboo, Jenkins, a free software written in Java, can also be used.

Workflow Organization in Bamboo
Bamboo uses the concepts of project, plan, stage, job, and task in its workflow.
- Project
It includes one or more plans, provides reporting for the plans, and maintains connections to other applications.
- Plan
It specifies the default repository, defines the variables within Bamboo, indicates “build” results.
- Stage
It can contain one or more jobs. It processes the multi-agent jobs in parallel. All jobs must be completed at a stage to move to the next step.
- Job
It allows you to collect together the tasks you want to run sequentially on the same agent and check which tasks are done. It can only use the data from the previous stage. It indicates tags for “build” results and other data.
- Task
It’s a small unit that gets the source code, executes the scripts, or parses the test results. It runs the jobs in Bamboo’s working directory sequentially.
Bamboo coordinates and schedules the building and testing of applications. This way, it automates installations and tests. Therefore, for Bamboo, you need:
- Project repository
- Build scripts
- Tests
In Bamboo, an authorized person is assigned to create the project and specify the project repository. This person should add test tasks for the project. Afterward, we can run tasks periodically or manually at any time. When there is a new commit in the central repository, it creates a queue of the tasks, using a trigger.

Bamboo manages the building and testing process in general, and it is not connected to a local environment. It automatically triggers the building and integration tests after the developer commits the code. During the trigger process, the code is pulled from the central repository and converted to an installation file using a script. In the end, Bamboo sends the installation file and the script to the machine for installation. The machine completes the installation by running the machine setup script. After the installation, Bamboo carries out the JMeter and Selenium tests.