< back

Bitbucket Runner: execute Bitbucket Pipelines locally

I've been working with Bitbucket and Bitbucket Pipelines the last few weeks, and very soon started missing a tool to test and debug my builds, something similar to Jet for Codeship or CircleCI CLI. I ended up writing my own set of scripts, which I've cleaned up and published in Github and NPM.

Install

Install bbrun with npm:

$ npm install -g bbrun

Usage

bbrun can execute any step defined in your bitbucket-pipelines.yml template:

pipelines:
  default:
    - step:
          name: hello
          image: ubuntu2
          script:
            - echo "hello world!"

Run bbrun straight from your project path:

$ bbrun hello
running "build" in "atlassian/default-image" image...
hello world!

Check the examples and its tests to learn different use cases.

Options

  Usage
    $ bbrun <step> <options>

  Options
      --template (-t), pipeline template, defaults to "bitbucket-pipelines.yml"
      --env (-e),  define environment variables for execution
      --dry-run (-d),  performs dry run, printing the docker command
      --interactive (-i), starts an interactive bash session in the container
      --help, prints this very guide

  Examples:
    Execute all steps in the default pipeline from bitbucket-pipelines.yml
      $ bbrun
      $ bbrun --template bitbucket-template.yml
      $ bbrun --pipeline default
    Execute a single step by its name
      $ bbrun test
      $ bbrun "Integration Tests"
    Execute steps from different pipelines
      $ bbrun test --pipeline branches:master
    Define an environment variable
      $ bbrun test --env EDITOR=vim
      $ bbrun test --env "EDITOR=vim, USER=root"

There are still a few caveats, which will hopefully be resolved soon:

  • Not all Bitbucket features are covered, check open issues for an overview of the roadmap.
  • Private images are supported, but the user has to login in the Docker Registry before executing bbrun (thus credentials in the file are ignored).
comments powered by Disqus