build
build copied to clipboard
[BUG] BuildStrategy: Cannot Use Context Dir as Working Directory
Is there an existing issue for this?
- [X] I have searched the existing issues
Kubernetes Version
k8s: 1.28.7 Tekton Pipelines: 0.56.2
Shipwright Version
0.12.0
Current Behavior
When authoring a build strategy, builds risk failure if a build strategy step has its workingDir
set to a sub-directory and source is cloned from git. Git expects the target directory of any clone action to be empty.
Setting workingDir
to a sub-directory of the source root (ex: contextDir
) results in errors like the following:
2024/04/11 16:39:28 /usr/bin/git -c safe.directory=/workspace/source clone -h
2024/04/11 16:39:28 /usr/bin/git -c safe.directory=/workspace/source submodule -h
2024/04/11 16:39:28 /usr/bin/git -c safe.directory=/workspace/source clone --quiet --no-tags --single-branch --depth 1 -- https://github.com/redhat-developer-demos/quinoa-wind-turbine.git /workspace/source
2024/04/11 16:39:28 fatal: destination path '/workspace/source' already exists and is not an empty directory. (exit code 128)
Expected Behavior
Ideally build steps succeed if the directory is a subPath of the working directory. However, this may prove difficult due to the way Tekton, Kubernetes, and potentially the underlying container runtime operate (everything runs in a single TaskRun/Pod today).
Steps To Reproduce
- Create a build strategy that has a step
workingDir
set to a sub-path of$(params.shp-source-root)
- Run a Build with this strategy that clones source from git.
Anything else?
This is perhaps something that we document as a known issue - ex: in a guide for Build Strategy authors.