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 is testing of every change in the system. It aims to integrate the different modules developed in the software process with minimum problems.
- It reduces the risks for 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 one of the crucial continuous integration tools 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.
It includes one or more plans, provides reporting for the plans and maintains connections to other applications.
It specifies the default repository, defines the variables within Bamboo, indicates “build” results.
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.
It allows you to collect together the tasks you want to run sequentially on the same agent and checks which tasks are done. It can only use the data from the previous stage. It indicates tags for “build” results and other data.
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:
- Code repository of the project
- Build scripts
In Bamboo, an authorized person is assigned to create the project and specify the repository for the project. This person should add test tasks for the project. Afterward, we can run tasks periodically or manually at any time. Also, 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.