Does your organisation do agile? If so, you will need continuous integration. Bamboo is one of the leaders in this field, tying automated builds, tests and releases together in a single workflow. Beyond that, it integrates beautifully with the rest of the Atlassian suite to cover the whole software lifecycle. Contact one of our experts to discuss Atlassian Bamboo and Bamboo training, or scroll down the page for more information on how Bamboo works and why it's useful.
What is Atlassian Bamboo software?
Atlassian Bamboo is a continuous integration (CI) tool. CI is the process by which, when changes are made to an application's source code, the application is automatically built, tested and deployed. With CI, changes can be tested within minutes of being made, even in a complex application with many servers and components. Typically, a developer will make a change to a set of source code files and commit them to a source code repository. The CI tool monitors the repository and, when it detects the newly made changes, it downloads the source code files, compiles them, deploys them to an environment and runs automated tests on them. Within minutes of a code change being made, it is integrated into an executable copy of the application which can be viewed and tested.
Why is Atlassian Bamboo useful?
Atlassian Bamboo continuous integration automates the process of building, testing and deploying software, transforming a manual process which typically takes hours to an automated process performed in minutes. This fits closely with the philosophy of agile development, which calls for working code to be delivered as early as possible, and bugs to be detected as early as possible - "fail fast".
As well as providing all the features of a CI application, Atlassian Bamboo software integrates closely with other elements of the Atlassian suite. Atlassian Bamboo integrates with BitBucket to monitor source code repositories and with JIRA to report progress on builds and deployment. The JIRA integration provides a direct link between the project management tool and what is really going on in development. A project manager can see in JIRA whether any given task has been built and deployed yet, and whether or not the build and deployment were successful. A tester can see in JIRA whether a feature they are waiting to test has been deployed yet.
Bamboo's key features are
- Automation – faster release management and software deployment
- Atlassian integration – Bamboo software is complementary with the rest of the Atlassian suite, communicating effectively with source code repositories such as Bitbucket server and Bitbucket and allowing developers to track issues in JIRA
- Language-neutral – out-of-the-box compatibility with all programing languages
- Parallel builds – Bamboo continuous integration lets you run multiple builds at the same time
- Easy transition – conveniently import data from Hudson or Jenkins
How it works
Bamboo software monitors a source code repository and builds and deploys the code stored in that repository automatically. The criteria for triggering a build can be specified, and can range from building on every code change, through building at set intervals (e.g. nightly), to building only on manual triggering. Atlassian Bamboo can interface with a range of different types of repository, including BitBucket, Git, GitHub, Mercurial, Subversion, CVS and Perforce. In addition, Bamboo add-ons exist to interface with repository types such as MS Team Foundation Server (TFS).
Bamboo is source code agnostic; it can build any code provided the necessary compilers and build instructions are available and work. As well as building software, Bamboo can trigger unit tests and, after deployment, integration tests. It can also transmit the results of the build and the tests to JIRA, so that project and test managers can quickly see the results.
Bamboo can delegate the actual compilation, testing and deployment to one or more remote agents. This gives Bamboo software the ability to run multiple compile, test and deployment jobs simultaneously. In larger projects this is very useful because compilation is processor intensive and large suites of automated tests may take several hours to run.
Atlassian Bamboo organises work into Projects, which correspond to discrete development projects. Within each project is a number of Plans. A Plan is a collection of build, test and deployment actions with a single set out outputs. The criteria for triggering a build is set at Plan level. Plans are further broken down into Stages, Jobs and Tasks.
Atlassian Bamboo software features a notification system that can send alerts to the user via their preferred means of communication: email, dashboard messages, RSS, IM, and others. This allows errors and issues to be quickly flagged and resolved.