When ImageBuildpack.ExportedLayers creates a layer file, the copy from
the source tar can fail, for example when a malformed entry name is
rejected. The temporary layer file created before the copy was not
deleted in that case and was left orphaned in the system temp
directory.
Delete the layer temp file when creating it fails, suppressing any
secondary failure from the delete so the original exception is
propagated.
Signed-off-by: Junhwan Choi <devjunsday@gmail.com>
See gh-51519
Spring Boot's Buildpacks integration inspects the stack IDs contained
in labels on the builder image and run image. Prior to this change, it
was a failure condition when the stack IDs did not match. Stack IDs
have been deprecated in the CNB spec, and it is no longer required
that the builder and run images match. The validation of stack IDs
was changed from an error to a warning to match the `pack` reference
implementation.
See gh-51390
Signed-off-by: Scott Frederick <scottyfred@gmail.com>
Added a new image cache option that uses the lifecycle's
`-cache-image` argument for the creator, analyzer, restorer and
exporter phases, so the build cache can be stored in an image and
shared between hosts via an image registry.
Exposed the option in the Maven (`<buildCache><image>`) and Gradle
(`buildCache { image { } }`) plugins.
Reject image caches configured for the launch cache, which the
lifecycle does not support.
See gh-50899
Signed-off-by: Tim Ysewyn <Tim.Ysewyn@me.com>
ExportedImageTar creates a temporary file in its constructor and then
copies the exported image into it and builds the layer factory. If
either step throws, the constructor fails before the instance is
assigned, so the try-with-resources statement that uses it never calls
close() and the docker-layers- temporary file is left behind.
Delete the temporary file when the constructor fails so its cleanup
matches close().
See gh-51117
Signed-off-by: wantaek <wantaekchoi@gmail.com>
ExportedLayers left the intermediate create-builder-scratch-source
temp file behind after rebased layer files were written, and opened
layer InputStreams without closing them when StreamUtils.copy does
not close either stream. Delete the source temp in a finally block
and use try-with-resources for the apply path so layer files can be
deleted reliably.
See gh-50919
Signed-off-by: Sebastien Tardif <sebtardif@ncf.ca>
Add /opt/homebrew/bin as an additional macOS fallback location when
starting external processes.
The previous fallback assumed /usr/local/bin only, which can fail on
Apple Silicon Homebrew setups in restricted PATH environments (for
example, IDE or UI-launched processes).
Update CredentialHelperTests to verify both macOS fallback paths are
attempted.
See gh-49721
Signed-off-by: 1233day <1233day@naver.com>