1
0
mirror of https://github.com/SAP/jenkins-library.git synced 2025-09-16 09:26:22 +02:00

Fix race condition in kanikoExecute (#4122)

* Update kanikoExecute.go

* Update kanikoExecute_test.go

Co-authored-by: Anil Keshav <anil.keshav@sap.com>
This commit is contained in:
Johann Goltz
2022-11-14 21:57:04 +01:00
committed by GitHub
parent 1bc6595d27
commit 4855e78a72
2 changed files with 4 additions and 4 deletions

View File

@@ -30,7 +30,7 @@ func installSyft(shellRunner command.ShellRunner, fileUtils piperutils.FileUtils
if err != nil {
return fmt.Errorf("failed to download syft binary: %w", err)
}
err = shellRunner.RunShell("/busybox/sh", "mkdir Syft & tar -zxvf syftBinary.tar.gz -C Syft")
err = shellRunner.RunShell("/busybox/sh", "mkdir Syft && tar -zxvf syftBinary.tar.gz -C Syft")
if err != nil {
return fmt.Errorf("failed to untar syft: %w", err)
}

View File

@@ -362,7 +362,7 @@ func TestRunKanikoExecute(t *testing.T) {
assert.Equal(t, "https://index.docker.io", commonPipelineEnvironment.container.registryURL)
//Syft install and call
assert.Contains(t, shellRunner.Calls[0], "mkdir Syft & tar -zxvf syftBinary.tar.gz -C Syft")
assert.Contains(t, shellRunner.Calls[0], "mkdir Syft && tar -zxvf syftBinary.tar.gz -C Syft")
assert.Contains(t, shellRunner.Calls[1], "Syft/syft index.docker.io/myImage:tag -o cyclonedx-xml=bom-docker-0.xml")
})
@@ -538,7 +538,7 @@ func TestRunKanikoExecute(t *testing.T) {
//Syft install and call, can we do it better without 2 for loops?
expectedShellCalls := []string{
"mkdir Syft & tar -zxvf syftBinary.tar.gz -C Syft",
"mkdir Syft && tar -zxvf syftBinary.tar.gz -C Syft",
"Syft/syft my.registry.com:50000/myImage:myTag -o cyclonedx-xml=bom-docker-0.xml",
"Syft/syft my.registry.com:50000/myImage-sub1:myTag -o cyclonedx-xml=bom-docker-1.xml",
"Syft/syft my.registry.com:50000/myImage-sub2:myTag -o cyclonedx-xml=bom-docker-2.xml",
@@ -815,7 +815,7 @@ func TestRunKanikoExecute(t *testing.T) {
// Case 2 - Installation of syft failed, using new kanikoMockClient here
certClient1 := &kanikoMockClient{}
shellRunner.ShouldFailOnCommand = map[string]error{"mkdir Syft & tar -zxvf syftBinary.tar.gz -C Syft": fmt.Errorf("untar failed")}
shellRunner.ShouldFailOnCommand = map[string]error{"mkdir Syft && tar -zxvf syftBinary.tar.gz -C Syft": fmt.Errorf("untar failed")}
err = runKanikoExecute(config, &telemetry.CustomData{}, &commonPipelineEnvironment, execRunner, shellRunner, certClient1, fileUtils)
assert.Error(t, err)
assert.Contains(t, fmt.Sprint(err), "failed to untar syft")