First I tried to replace the "normal" checkout step with the following
working_directory: ~/project/api
steps:
- unless:
condition:
or:
- equal: [ true, << pipeline.parameters.ci-changed >> ]
- equal: [ true, << pipeline.parameters.api-changed >> ]
- equal: [ true, << pipeline.parameters.common-changed >> ]
steps:
- run:
name: skip job b/c no changes occured
command: circleci-agent step halt
- checkout:
path: ~/project
- restore_cache:
keys:
- v1-dependencies-api-{{ checksum "yarn.lock" }}
- v1-dependencies-api-
working_directory: ~/project/api
steps:
- unless:
condition:
or:
- equal: [ true, << pipeline.parameters.ci-changed >> ]
- equal: [ true, << pipeline.parameters.api-changed >> ]
- equal: [ true, << pipeline.parameters.common-changed >> ]
steps:
- run:
name: skip job b/c no changes occured
command: circleci-agent step halt
- git-shallow-clone/checkout:
path: ~/project
- restore_cache:
keys:
- v1-dependencies-api-{{ checksum "yarn.lock" }}
- v1-dependencies-api-
But it seems the orb cannot handle the ~/project path correctly and checks out the repo into the wrong folder.
My next step (restore_cache) failed with:
error computing cache key: template: cacheKey:1:23: executing "cacheKey" at <checksum "yarn.lock">: error calling checksum: open /home/circleci/project/api/yarn.lock: no such file or directory
So I changed the path to an absolute path like this:
working_directory: ~/project/api
steps:
- unless:
condition:
or:
- equal: [ true, << pipeline.parameters.ci-changed >> ]
- equal: [ true, << pipeline.parameters.api-changed >> ]
- equal: [ true, << pipeline.parameters.common-changed >> ]
steps:
- run:
name: skip job b/c no changes occured
command: circleci-agent step halt
- git-shallow-clone/checkout:
path: /home/circleci/project
Now I get the error message: fatal: destination path '/home/circleci/project' already exists and is not an empty directory.
Logging into the machine via ssh and checking the folder show that the ~/project/api was already created (by CircleCI!?).
How does the "normal" checkout command handle this case?
Can we somehow improve the git-shallow-clone/checkout command to handle:
path with ~/... in it
- the "path already exists" error
Maybe you have a quick idea or I can try and take a look at how to tackle this.
First I tried to replace the "normal" checkout step with the following
But it seems the orb cannot handle the
~/projectpath correctly and checks out the repo into the wrong folder.My next step (
restore_cache) failed with:So I changed the
pathto an absolute path like this:Now I get the error message:
fatal: destination path '/home/circleci/project' already exists and is not an empty directory.Logging into the machine via ssh and checking the folder show that the
~/project/apiwas already created (by CircleCI!?).How does the "normal"
checkoutcommand handle this case?Can we somehow improve the
git-shallow-clone/checkoutcommand to handle:pathwith~/...in itMaybe you have a quick idea or I can try and take a look at how to tackle this.