Python with Bitbucket Pipelines
This guide shows you how to use Bitbucket Pipelines for building and testing a Python software project in a Docker container.
Most of the configuration happens in the
bitbucket-pipelines.yml file that Pipelines uses to define the build.
Specify your Python 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 Python with Bitbucket Pipelines by using one of the official Python Docker images on Docker Hub. If you use the default Python image it will come with pip installed by default to help you manage your dependencies.
For instance, you can use Python 3.5.1 by specifying it at the beginning of your bitbucket-pipelines.yml file.
image: python:3.5.1 pipelines: default: - step: script: - python --version
If you wanted to use a different version of Python you simply need to change the tag of the Python Docker image. The example below would start a container with Python 2.7.13
You can find a list of all supported Python versions and corresponding image tags, refer to https://hub.docker.com/r/library/python/.
Note that the Django Docker images have been deprecated in favor of the standard Python images mentioned above.
You can check your bitbucket-pipelines.yml file with our online validator.
If you are using a requirements.txt file, you can simply run pip at the beginning of your script to install all the dependencies.
image: python:3.5.1 pipelines: default: - step: script: - pip install -r requirements.txt
You can also install dependencies with the pip install command.
image: python:3.5.1 pipelines: default: - step: script: - pip install django
Bitbucket Pipelines allows you to launch extra services during the execution of your pipeline by defining the service, and instantiating it on the appropriate step.
We've compiled a list of of bitbucket-pipeline.yml examples to help get started with your favourite database.
You simply need to add to your bitbucket-pipelines.yml file the same commands that you would run locally to test your application. Following are some examples for specific Python tools.
Running PyUnit tests is quite straight forward.
image: python:3.5.1 pipelines: default: - step: script: - python -m unittest discover tests/
To test your Django projects, you can run it the same as you run Django tests locally. Just remember to make sure that Django is installed in your Pipelines environment too.
image: python:3.5.1 pipelines: default: - step: script: - pip install django - python manage.py test
Remember, you can check your bitbucket-pipelines.yml file with our online validator.