Use Pipelines in different software languages

You can use Bitbucket Pipelines for a project in any software language that can be built on Linux by using Docker images. The default Docker image used by Pipelines has support for many of the languages mentioned on this page.

We've also built specific pages, including demo repositories, to help you get started with:

See also Test with databases in Bitbucket Pipelines.

Remember, if you're having trouble using Bitbucket Pipelines, our active community is always there to help.

Clojure 

bitbucket-pipelines.yml

1 2 3 4 5 6 7 8 9 10 # This is a sample build configuration for Clojure. # Only use spaces to indent your .yml configuration. # ----- # You can use any Docker image from Docker Hub, or your own container registry, as your build environment. image: clojure:lein-2.7.1 pipelines: default: - step: script: # Modify the commands below to build your repository. - lein test

See also this Clojure image from Docker Hub that you can use.

C++ - Make

bitbucket-pipelines.yml

1 2 3 4 5 6 7 8 9 10 11 12 # This is a sample build configuration for C++ – Make. # Only use spaces to indent your .yml configuration. # ----- # You can use any Docker image from Docker Hub, or your own container registry, as your build environment. image: gcc:6.1 pipelines: default: - step: script: # Modify the commands below to build your repository. - ./configure - make - make test

Docker

See our full guide — Run Docker commands in Bitbucket Pipelines

bitbucket-pipelines.yml

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 # This is a sample build configuration for Docker. # Only use spaces to indent your .yml configuration. # ----- # You can specify a custom docker image from Docker Hub as your build environment. # image: atlassian/default-image:latest # enable Docker for your repository options: docker: true pipelines: default: - step: script: # Modify the commands below to build your repository. # Set $DOCKER_HUB_USERNAME and $DOCKER_HUB_PASSWORD as environment variables in repository settings - export IMAGE_NAME=your-Dockerhub-account/your-docker-image-name:$BITBUCKET_COMMIT # build the Docker image (this will use the Dockerfile in the root of the repo) - docker build -t $IMAGE_NAME . # authenticate with the Docker Hub registry - docker login --username $DOCKER_HUB_USERNAME --password $DOCKER_HUB_PASSWORD # push the new Docker image to the Docker registry - docker push $IMAGE_NAME

Go

bitbucket-pipelines.yml

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 # This is a sample build configuration for Go. # Only use spaces to indent your .yml configuration. # ----- # You can use any Docker image from Docker Hub, or your own container registry, as your build environment. image: golang:1.7 pipelines: default: - step: script: # Modify the commands below to build your repository. - PACKAGE_PATH="${GOPATH}/src/bitbucket.org/${BITBUCKET_REPO_OWNER}/${BITBUCKET_REPO_SLUG}" - mkdir -pv "${PACKAGE_PATH}" - tar -cO --exclude-vcs --exclude=bitbucket-pipelines.yml . | tar -xv -C "${PACKAGE_PATH}" - cd "${PACKAGE_PATH}" - go get -v - go build -v - go test -v

Haskell

bitbucket-pipelines.yml

1 2 3 4 5 6 7 8 9 10 # This is a sample build configuration for Haskell. # Only use spaces to indent your .yml configuration. # ----- # You can use any Docker image from Docker Hub, or your own container registry, as your build environment. image: haskell:7.10 pipelines: default: - step: script: # Modify the commands below to build your repository. - stack test

See also this Haskell image from Docker Hub that you can use.

Java

See our full guide — Java with Bitbucket Pipelines.

Javascript (Node.js)

See our full guide — Javascript (Node.js) with Bitbucket Pipelines.

.Net Core

bitbucket-pipelines.yml

1 2 3 4 5 6 7 8 9 10 11 12 13 14 # This is a sample build configuration for .NET Core. # Only use spaces to indent your .yml configuration. # ----- # You can use any Docker image from Docker Hub, or your own container registry, as your build environment. image: microsoft/dotnet:sdk pipelines: default: - step: script: # Modify the commands below to build your repository. - export PROJECT_NAME=yourProjectName - export TEST_NAME=yourTestName - dotnet restore - dotnet build $PROJECT_NAME - dotnet test $TEST_NAME

PHP / Laravel

See our full guides:

Python

See our full guide - Python with Bitbucket Pipelines.

Ruby

See our full guide - Ruby with Bitbucket Pipelines.

Rust

bitbucket-pipelines.yml

1 2 3 4 5 6 7 8 9 10 11 12 # This is a sample build configuration for Rust. # Only use spaces to indent your .yml configuration. # ----- # You can use any Docker Hub image, or your own container registry, as your build environment. image: rust:1.31 pipelines: default: - step: script: # Modify the commands below to build your repository. - cargo build -v - cargo test -v

Scala

bitbucket-pipelines.yml

1 2 3 4 5 6 7 8 9 10 11 # This is a sample build configuration for Scala. # Only use spaces to indent your .yml configuration. # ----- # You can use any Docker image from Docker Hub, or your own container registry, as your build environment. image: bitbucketpipelines/scala-sbt:scala-2.12 pipelines: default: - step: script: # Modify the commands below to build your repository. - sbt test

Other supported languages

You can build any language that can be built on Linux by using Docker images.

Here are some Docker images from Docker Hub that you can use to build projects in other languages:

Additional Help