Yesterday GitHub competitor GitLab offered local Docker repositories in a bid to expand its footprint in code hosting. Now GitHub competitor Bitbucket has upped its game as well.
Bitbucket's new Pipelines offering is still only in beta, but its intention is clearly to make developers consider Bitbucket as a core continuous integration/continuous delivery (CI/CD) tool, not only a code silo.
The idea is to support an entire application's workflow, from coding to testing to deployment, within Pipelines' interface -- including different workflows for different branches of a project. The build process is detailed in a file placed in the root of a given repository, and since the build process runs inside a Docker image, it's possible to use almost any language runtime.
Bitbucket's ambitions for Pipelines are evidenced in its integration with third-party products and services. Cloud platforms (AWS and Azure), automated testing systems (Code Climate), and third-party repositories (NPM) can all be added to a pipeline as part of the deployment, testing, or monitoring phases.
As you might expect in a beta, Pipelines is missing a few features. For one, it only works with Git repositories, not Mercurial. Support for Mercurial has long been one of Bitbucket's small but useful selling points, as teams who have a workflow built with Mercurial want to preserve that. Final pricing for Pipelines hasn't been disclosed, but there's currently a usage limit of 300 minutes per month.
Most of the competition will come from two sources: competing services like GitLab and GitHub and on-premise CI/CD solutions like Jenkins, which offers some of the same behaviors (for example, its Pipeline plug-in). Atlassian is trying to keep a foot in both camps, with Bamboo Server as the local product and Bitbucket Pipelines as the cloud item. A cloud version of Bamboo Server exists, but it's being deprecated, with users offered a chance to switch to the local edition.
GitHub has its own integrations with build services -- most prominently, Travis CI -- but its emphasis is a little different. With Pipelines, the integration process is native to Bitbucket; with GitHub, Travis is only one of a number of pipeline technologies that includes CircleCI or AWS CodePipeline. Due to its approach, GitHub's service is one of many components in a workflow, rather than the source of the workflow -- not that it lessens criticism about the degree of dependency developers have on GitHub.