So I just found out that Atlassian makes this software thing called Bamboo.
It’s been out for a long time, apparently. 2007! And now it’s nearly end-of-life. I am a little behind the curve here.
It’s a build tool that greatly helps setting up Continuous Integration & Continuous Deployment -type stuff. I use Jenkins; that’s all I’ve needed. I’ve heard of other CI stuff like Travis, CircleCI, even how Rust/Cargo packages are integrated, but somehow Bamboo just slipped past me. This is probably old, old hat for a lot of people. Bear with me.
I’ve been reading stuff like The Toyota Way at Codeweavers and how it’s applied to software shops. I’m a (somewhat) firm believer that they’re doing something right at Toyota.
I don’t know these Codeweaver folks; I’m just reading the slides. They’ve been doing Agile, starting with 3-week Scrums/sprints, transitioned to Extreme Programming, slowly blending in the Toyota stuff.
I suppose you could do all of this stuff with Jenkins. I don’t know. I guess you could build CI/CD pipelines all with Makefiles, but does anyone manage to get it done? I don’t.
Anyhow, I wanted to set up Bamboo to autobuild a Grails project, run the tests, maybe even deploy to a web server. Turns out all that is super easy in Bamboo. All of that. I haven’t set up Grails yet, but I’ve gotten my blog integrated into Bamboo now. Builds are amazing: I commit, wait for the poll interval (I can see it hit the hg server quite regularly), watch the build dashboard update, check the deployment and I’ve got a tested deliverable .war deployed to Tomcat. I’m bikeshedding here, sure. These are good tools, though.
This software is pretty good and damn near free. I love free software, but I am typing this in Sublime, so I’ve “gotten over it” to say the least. I could probably set up a comparable system myself with hooks and webhooks and crap like that. That would take me probably a whole day if not 3 days and failure to hit the mark. That might not be worth it. I hate developing, developing, developing, then hitting super weird deployment/environment issues (I know, who doesn’t..). Everything’s got to build reliably. The build must flow.
Like Dune, but less fiction and more sciency.
It’s important to have a good watch task set up for local builds, too (versus deployments). I definitely inspect changes locally before I commit & deploy to the build server (often the very same machine). I can set up multiple build artifacts, multiple test jobs, multiple deployment servers.
Orchestration is the right word, all right. I have been on an automation spree around my house.
I put some lamps on $3 outlet timers, basically. All the small things.
Getting a “keyless” build/test/package/deploy pipeline working is very nice. Very, very nice.
Bamboo, folks. It might be better than Netflix. To me.