We went back and looked at the major players in the CI arena. That was problematic as over half of our users have Macs. Although Travis supports Mac, it would be difficult to test our GUI using Cucumber, since this requires a graphical login. Their platforms were adequate, but the tools they provided weren't powerful or flexible enough to do what we needed. We tried out both of these solution providers. The monthly service fees for these solutions are a lot lower than the salary of a full-time engineer. Outsourcing made sense from a staffing and a budgetary perspective. Why not farm out testing to a third-party service like Travis or AppVeyor? Ableton may have a big footprint in the music industry, but we're not a big company. Given the difficulty of maintaining a modern CI pipeline in a C++ environment, Ableton considered a third-party solution. Finding the Right CI Pipeline for a C++ Environment
Blue Ocean and pipelines came along at the perfect time for us, which was right when we were considering how to replace our older Jenkins installation. We have been using an outdated but stable build that didn't offer many of the conveniences of the latest releases. That's why Ableton was stuck with an older version of Jenkins. Our CI infrastructure was not designed with flexibility in mind, and we are still in the process of migrating to Jenkins 2 and Groovy pipelines. This puts a tremendous strain on our developers and our CI pipeline. There are too many variables at play, and so every commit must be fully tested. We don't have the luxury of doing selective testing with Ableton Live. These builds rarely failed, but when they did, we knew that the new version was indeed broken, and we could go back and repair our code before merging again. On merges to master, we'd run a larger number of acceptance tests, which took longer. We'd select perhapsa dozen of the most important tests and run them on every commit and pull request.
Back at Spotify, we used the BVT-build verification test-method to accelerate the release of our desktop player. I didn't have much experience working on backend services when I started here, but I understood how the development cycle worked. I started here working on Link, Ableton's open-source protocol that allows devices to sync to a tempo wirelessly. But previously, I've worked with audio apps for years, targeting end users rather than developers.
I came to Ableton from Spotify, where I worked on their Android app, third-party SDKs, and their desktop client. Learning About Application Testing at Spotify Compared to newer languages such as Java and Python, C++ can be tricky to develop and debug. This process can be extremely complicated because Live contains millions of lines of C++ code and a sizeable legacy codebase. That's why we go through a rigorous development and testing cycle to ensure that every time we refresh our application, everything works from day one.
Every major upgrade and minor maintenance release comes with its share of challenges. We are now at version 10 of Ableton Live. But we are continually adding new features, integrating new hardware, and making sure our product is compatible with the current and legacy versions of multiple operating systems. Live is a mature product in a mature market.
Our other commercial and open-source competitors include Apple's professional-grade Logic Pro X, FL Studio, and Audacity. At the other end of the spectrum, professional recording studios have been using Avid's Pro Tools to record, mix, and master audio for over 31 years. Apple bundles GarageBand with every Mac and iOS device.
There's a lot of competition in this market. Our intuitive arrangement and session views provide a blank canvas for musicians looking to create their next masterpiece. Musicians around the world compose, record, mix, and edit audio and MIDI data in Ableton Live. It combines multitrack recording and sequencing with virtual instruments and sound manipulation tools that can be used to assemble a track in the studio or in a live performance setting. Twenty-One Years of Ableton LiveĪbleton Live dates back to 2001. Whether you're playing live or mixing a track, a software glitch or application crash can be catastrophic.Īs a member of Ableton's Developer Tools team, I help build the pipelines that allow our software engineers to provide stable error-free releases of our products, including Live, a leading digital audio workstation (DAW). Computer monitors sit atop mixing consoles in studios, and hard drives have supplanted tape reels as storage. Laptops have replaced racks of synthesizer modules, sound processors, amplifiers, stompboxes, and turntables on concert stages.