Ruby with Bitbucket Pipelines
Here's how you can configure the bitbucket-pipelines.yml file to build and test a Ruby project.
Specify your Ruby version with Docker
Bitbucket Pipelines runs all your builds in Docker containers using an image that you specify at the beginning of your configuration file. You can easily use Ruby with Bitbucket Pipelines by using one of the official Ruby Docker images on Docker Hub. If you use the default Ruby image it will come with the bundler installed by default to help you manage your dependencies.
For instance, you can use Ruby 2.4.0 by specifying it at the beginning of your bitbucket-pipelines.yml file:
If you want to use a different version of Ruby you simply need to change the tag for the Ruby Docker image. For example, here's how you would start a container with Ruby 2.3.3:
You can find a list of all supported Ruby versions and corresponding image tags at https://hub.docker.com/r/library/ruby/.
Note that the Rails Docker images have been deprecated in favor of the standard Ruby images mentioned above.
If you are using a Gemfile, you can simply run
bundle install at the beginning of your script to install all the dependencies:
You can also install dependencies explicitly with the
gem install command:
It is not yet possible to use multiple containers in a running pipeline, but you can use or create a Docker image that contains both Ruby and the required database. You will find below some examples of images that you can re-use or adapt to meet your requirements.
You simply need to add to your bitbucket-pipelines.yml file the same commands that you would run locally to test your application. For instance, if you are using RSpec the following configuration would install your dependencies and then run your tests:
If you are building a Rails application it is highly likely that you will require a database to run your tests. You can use one of the examples in the Databases section to create your own Dockerfile with the right version of Ruby for your application. For instance you can use the Dockerfile below to create a Docker image with Ruby 2.3.1 and PostgreSQL that you can push back to Docker Hub as shown in the example repository.
To use that image with a Rails project you will need to start and configure the database as part of your pipeline script:
Was this helpful?
Thanks for your feedback!