Custom build directories with GIT_CLONE_PATH
Is your feature request related to a problem? Please describe.
Hi! Love this project, however it does not currently work with my GitLab projects where GIT_CLONE_PATH is set, as CI builds in those repos are where they're just a piece of a larger puzzle and I have to clone other items directly in CI_PROJECT_PATH. Basically it just allows the GitLab project being CI'd to start off in a subdirectory.
Describe the solution you'd like Pretty much just what the GitLab docs state for it:
- https://docs.gitlab.com/ee/user/project/repository/monorepos/#git-clone-path
- https://docs.gitlab.com/ee/ci/runners/configure_runners.html#custom-build-directories
It just clones the GitLab project into the provided GIT_CLONE_PATH directory instead of the default.
Describe alternatives you've considered Other than manually moving items around, which I'm not too keen on doing.
Additional context Not really, just letting you know this is a feature that's missing! Thanks! :)
On a similar note, CI_BUILDS_DIR is missing. It looks like CI_PROJECT_DIR here is taking it's place, which is not particularly working well for my case of needing to orchestrate multiple repos for a single CI run.
For example on a real GitLab CI run, these are the builtin variables I get:
CI_PROJECT_PATH: firmware/myproject
CI_BUILDS_DIR: /builds
CI_PROJECT_DIR: /builds/firmware/myproject # aka "${CI_BUILDS_DIR}/${CI_PROJECT_PATH}" , at least in my runner setup
And "myproject" is a subcomponent of what we'll call the "super_project", so I need to do a directory shuffle in order to do a build, like so:
variables:
SUPER_PROJECT_DIR: ${CI_PROJECT_DIR}/super_project # /builds/firmware/myproject/super_project
ACTUAL_PROJECT_DIR: ${SUPER_PROJECT_DIR}/myproject # /builds/firmware/myproject/super_project/myproject
ARTIFACTS_DIR: ${CI_PROJECT_DIR}/artifacts
script:
- |
cd ${CI_BUILDS_DIR}
mv ${CI_PROJECT_DIR} ${CI_BUILDS_DIR}/tempspace
mkdir -p ${CI_PROJECT_DIR}
git clone --depth=1 https://oauth2:${GL_TOKEN}@... ${SUPER_PROJECT_DIR}
mv ${CI_BUILDS_DIR}/tempspace ${ACTUAL_PROJECT_DIR}
cd ${ACTUAL_PROJECT_DIR}
./do_the_build destination=${ARTIFACTS_DIR}
I can't currently do script step 2 with gitlab-ci-local. So even without GIT_CLONE_PATH support, a workaround like this wouldn't work either
CI_BUILDS_ variables was deprecated in Gitlab 9.0, we will most likely not be implementing variables that are so old.
https://gitlab.com/gitlab-org/gitlab/-/issues/352957
CI_BUILD_*, non-plural, yes. CI_BUILDS_DIR is noted as not being deprecated in the very ticket you linked 😅
CI_BUILDS_DIR wouldn't be here otherwise https://docs.gitlab.com/ee/ci/variables/predefined_variables.html , or in various other current docs https://docs.gitlab.com/search/?q=CI_BUILDS_DIR
Closing this a duplicate of https://github.com/firecow/gitlab-ci-local/issues/1330