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

Directory structure in Bamboo builds

JohnD April 14, 2014

I'm porting across a PHP project from Jenkins to Bamboo, and feel as though there's something I must be missing with Bamboo.

I wanted to get rid of the linear set of commands that we had with Jenkins and separate things out into Stages. The very first Task is to checkout the source repos, which end up in xml-data/build-dir/PROJ-PLAN-JOB1/(foo|bar|baz). Now for every task in subsequent stages, e.g. running unit tests, I need to set the working directory to "${bamboo.build.working.directory}/../PROJ-PLAN-JOB1/foo". Is this the correct way of doing things?

Also, is there a standardized location for things like configuration files? We have a set of .yml and .xml files that contain sensitive info like the live database credentials, which we don't want to keep under source control. At the moment I'm just doing the following in a script, which seems suboptimal:

cp /path/to/live-parameters.yml ${bamboo.build.working.directory}/../PROJ-PLAN-JOB1/foo/app/config/parameters.yml

TL;DR I want to work on the same set of files in each Stage of my Plan, but it appears that I always need to refer to the relative path of the subdirectory where the files are first checked out. Is this correct?

2 answers

1 accepted

2 votes
Answer accepted
Marcin Gardias
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
April 16, 2014

Let me explain why it is so.

The stages are designed with parallel & distributed execution in mind. You can define many jobs in single stage and they will run in parallel (as long as you provide enough agents). But this has consequence on how we had to organise working directories: since jobs can run in parallel and are dynamically assigned to agents (which can be remote), each job runs in separate directory. This in turn means that if you need to pass information to later stages you should use Artifacts.

Long story short: if your build is sequence of things to be happening on single dir, using single Job is better solution.

What you do will work only as long you don't use concurrent builds and have only 1 agent that runs your build.

0 votes
JohnD April 16, 2014

I see, thanks for the quick response!

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events