mirror of
https://github.com/containers/podman.git
synced 2025-10-20 04:34:01 +08:00
Feat: send additional build contexts for remote builds
Fixed the --build-context flag to properly send files for remote builds. Previously only the main context was sent over as a tar while additional contexts were passed as local paths and this would cause builds to fail since the files wouldn't exist. New changes modifies the Build API to use multipart HTTP requests allowing multiple build contexts to be used. Each additional context is packaged and transferred based on its type: - Local Directories: Sent as tar archives - Git Repositories: link sent to the server where its then cloned - Container Images: Image reference sent to the server, it then pulls the image there - URLs/archives: URL sent to the server, which handles the download Fixes: #23433 Signed-off-by: Joshua Arrevillaga <2004jarrevillaga@gmail.com>
This commit is contained in:
@ -250,7 +250,6 @@ var _ = Describe("run basic podman commands", func() {
|
||||
|
||||
It("podman build contexts", func() {
|
||||
skipIfVmtype(define.HyperVVirt, "FIXME: #23429 - Error running podman build with option --build-context on Hyper-V")
|
||||
skipIfVmtype(define.QemuVirt, "FIXME: #23433 - Additional build contexts should be sent as additional tar files")
|
||||
name := randomString()
|
||||
i := new(initMachine)
|
||||
session, err := mb.setName(name).setCmd(i.withImage(mb.imagePath).withNow()).run()
|
||||
@ -273,6 +272,15 @@ var _ = Describe("run basic podman commands", func() {
|
||||
|
||||
bm := basicMachine{}
|
||||
build, err := mb.setCmd(bm.withPodmanCommand([]string{"build", "-t", name, "--build-context", "test-context=" + additionalContextDir, mainContextDir})).run()
|
||||
|
||||
if build != nil && build.ExitCode() != 0 {
|
||||
output := build.outputToString() + build.errorToString()
|
||||
if strings.Contains(output, "multipart/form-data") &&
|
||||
strings.Contains(output, "not supported") {
|
||||
Skip("Build contexts with multipart/form-data are not supported on this version")
|
||||
}
|
||||
}
|
||||
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(build).To(Exit(0))
|
||||
Expect(build.outputToString()).To(ContainSubstring("COMMIT"))
|
||||
|
Reference in New Issue
Block a user