If your development team is like ours, they want automated builds, tests, and releases tied together in a single workflow- and not tied together with kitchen string and duct tape like some crazy Rube Goldberg machine, either. We’re talking smooth and seamless like a well-oiled pinball machine.
That’s why Bamboo customers choose it: it’s flexible enough to handle even the most complicated continuous integration and continuous delivery (CI/CD) workflows. Now, in Bamboo 6.0, we’ve upped the ante with a new feature called Bamboo Specs, which lets you use a configuration-as-code approach for build plans so you can spend less time clicking around the UI.
Read on to learn about new features that support CI/CD tasks like Bamboo Specs, build-specific container support, and tighter integrations between Bamboo and Bitbucket Server. Plus, get tips for modernizing your builds in Bamboo.
Tip 1: Iterate Build Plans Quickly
The ability to make quick iterations and respond to change is key to modern development. In Bamboo 6.0, we introduced a new way to configure builds called Bamboo Specs. Bamboo Specs allows configurations of Bamboo plans to be stored in text format remotely. Before Bamboo Specs, developers relied on the Bamboo user interface to change and/or create build configurations. This process could be tedious and required a lot of repetition – time better spent on working toward a release.
Bamboo Specs simplifies plan configuration by letting you define and create your configuration as code. These remotely defined plans are implemented as code onto your Bamboo Server once a plan is accepted into the workflow.
Because Bamboo Specs uses Java, you get all the benefits from your IDE like autocorrect and syntax highlighting when editing your plans. This promotes developer productivity and gives you a modern and flexible CI toolset that lets build configurations evolve as fast as the codebase itself. The ability to make quick changes gives developers more ownership of and responsibility for the CI pipeline.
Bonus, if you store your code file in a version control system, you also get the benefit of code review and version history. For example, if you need to compare prior versions of a build (to see why something is broken), simply run the build as it was at that point in time.
Pro tip: We are committed to CI/CD features and integrations. In an upcoming release, Bamboo will automatically recognize the config file and trigger builds as needed from Bitbucket Server.
Tip 2: Build and Test in One Place
These days, development teams tend to support more than one platform. For example, at Atlassian, we build SourceTree and other tools for Mac, Windows, and other operating systems. With the release of Bamboo 6.0, we are taking steps to ensure all of your applications are covered with built-in (official) support for XCode and Fastlane. This means you can build and test your mobile iOS or OSX apps alongside other applications.
Xcode is specific for iPhone, iPad, Mac, Apple Watch, and Apple TV whereas Fastlane is an open source tool to automate beta deployments and releases for iOS and Android apps. It handles many tasks, like generating screenshots, dealing with code signing, and releasing your application.
Supporting build tools like Xcode and Fastlane is important for CI/CD. A builder task allows you to connect your Bamboo plan, or job, to a build tool like Fastlane. This gives you a continuous integration pipeline by using the existing configuration when the plan or job is built.
What makes it modern? These are the current technologies people need to build, whether it be for an iPad or Android app, and you can run your builds in one tool across multiple platforms.
Like Bamboo Specs, this allows developers to spend less time managing their build system and more time coding.
Pro tip: We will continue to add support for additional platform and technologies. Stay tuned for more information! Also, you can choose from a variety of available tasks for both build and deployment projects like AWS CodeDeploy, Docker, and Amazon S3.
Tip 3: Build Only When It Makes Sense
Another important tenet of CI/CD is breaking down cultural and tooling silos. Bamboo 6.0 launched new integrations between Bamboo and Bitbucket Server that help eliminate tooling silos within the Atlassian ecosystem.
Bamboo was designed to work with branching workflows in Bitbucket Server, but it was hard to answer questions during a code review like, “has this build passed?” Now you can answer this question by automatically creating and executing build plans for branches and pull requests within Bitbucket Server. On the flip side, Bamboo previously did not send Bitbucket Server information on in-progress builds, it just showed completed builds. Now Bamboo sends this information to Bitbucket when a build kicks off, giving developers complete transparency on the progress of a build.
Developers need to know what is happening in their various tools. Cutting down on build noise and freeing up build agents is a direct benefit of choosing when builds run for instance on branch creation, or (now) on pull request creation.
Likewise, monitoring build progress gives developers more visibility and less context switching between tools. This integration lays the foundation for the best practice of using plan branches to know that every pull request will get built. Plan branching also allows developers to “set and forget” their configurations, knowing that any time a pull request gets created, Bamboo will have it covered. The ability to do things like build for pull requests versus creating a build for each new branch frees up developer time and brings CI/CD practices to help get code out the door.
Pro tip: You can see when a build kicks off in the BB Server UI on related commits and pull requests.
Next Steps for Continuous Integration/Delivery With Bamboo (and Bitbucket Server)
These tips help to implement CI/CD with Bamboo, and this is why we are continuing to invest in features that will help customers transition into a world of CI/CD and DevOps. We want customers to spend less time managing their build system and instead stay focused on getting code out the door. Whether that means storing a build plan as code or using Bamboo as a single platform for all of your build tools, Bamboo is the enterprise-ready CI solution for Atlassian customers.