Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Next challenges

Recent achievements

  • Global
  • Personal

Recognition

  • Give kudos
  • Received
  • Given

Leaderboard

  • Global

Trophy case

Kudos (beta program)

Kudos logo

You've been invited into the Kudos (beta program) private group. Chat with others in the program, or give feedback to Atlassian.

View group

It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

Limit pipelines to a specific branch

This question is in reference to Atlassian Documentation: Configure bitbucket-pipelines.yml

Is there a way to disable pipelines for specific branches?  Or, only enable for one specific branch?  We'd like to only have pipelines run on our 'master' branch for now, and ignore everything else.  

Tried adding a default that simply has an echo statement in the script, but it still spends a lot of time spinning up a docker, just to do that echo.  Seems like a waste of resources?

2 answers

1 accepted

37 votes
Answer accepted
xtjhin Atlassian Team Jun 07, 2016

Hi James

You sure can limit pipelines to run only when certain branches change.

Here's an example of a bitbucket-pipelines.yml that only runs when master is pushed

pipelines:
  branches:
    master:
      - step:
          script:
            - echo "only on master"

With this configuration, if I push another branch, it won't be built.

That seems to have done the trick.  I was thinking 'default' was a required block, meaning a branch always has a match.  I was wrong!  

Thank you.

Like # people like this

Yup, works for me too, thanks!

Note that the 'default' block is a sibling of the 'branches' block, not a descendant.  That tripped me up for a couple minutes.

Like # people like this

I have a single repository under bit-bucket account and this repository has this 4 branches :

- master 
- API
- Admin - Web

 I put bitbucket-pipelines.yml under master and its like that:

 

image: maven:3.5.0-jdk-7
pipelines:
branches:
API: - step:
caches
: - maven script: - mvn install

 

so I expect that when I push something to API, this will file will be triggered , but in fact it never happened, did I miss any?

is there a way to gave multiple options?
I mean, I want to run the same test on both `develop` and `master`, it's a bit ugly to repeat the same 10 rows of config for both brenches

it'd be great something like this

pipelines:
branches:
API|Admin:
- step:
caches
: - maven script:

but i think it breaks the yaml 

Like # people like this

Any information about this? We would like to see similar functionality.

you can write

branches: '{master, develop}': 
Like # people like this

Wow, didn't know about it, thank you

Like Deleted user likes this

that's incredible, thanks indeed

it is not in any way clear trough the documentation!

Like Mirko Tebaldi likes this

Is it possible to give the multiple branches syntax via bitbucket variables ?

Let say i have a list of branches to trigger pipeline in repo variable APP_BRANCHES with value feature/b1, fix/b2, hotfix/b3

 

branches: '{$APP_BRANCHES}'

 Is it possible ?

pipelines:
branches:
'{master,dev}':
- step:
# In next line with proper indentation.

Suggest an answer

Log in or Sign up to answer
TAGS
Community showcase
Published in Bitbucket

Powering DevOps with Bitbucket Server & Data Center

Hi everyone, The Cloud team recently announced 12 new DevOps features that help developers ship better code, faster   ! While we’re all excited about the new improvements to Bitbucket ...

2,087 views 0 7
Read article

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you