What does this MR do?
Adds the ability to add a "builddir" option per-job within your .gitlab-ci.yml file
Why was this MR needed?
There are a few use cases for this. My particular issue was that I wanted to use a
Docker executor with a custom per-job image that required my code and artifacts to be in different directories at each stage or job. For example, the
golang:1.7.1 image sets the $GOPATH to
/go/. By default, my code would be checked out in
/build/ or the value that is set for
builds_dir in the runner configuration. I didn't want to reconfigure my runner to use
/go as the
builds_dir because I intend on using the same runner for multiple jobs through the pipeline that use different images.
Are there points in the code the reviewer needs to double check?
Keep in mind that this currently affects all executors and shells, from what I understand. This may not be the best approach since there are no checks or options to push the custom build directories down the stack. It might be nice to add an option for SSH / SHELL executors to have a prepended parent directory defined in the runner configuration.
Does this MR meet the acceptance criteria?
Added for this feature/bug
All builds are passing
Branch has no merge conflicts with
master(if you do - rebase it please)