fix switching to non existent workdir
This commit is contained in:
		
							parent
							
								
									cb11a9982c
								
							
						
					
					
						commit
						c271f989f5
					
				|  | @ -65,7 +65,8 @@ func (r *RunCommand) ExecuteCommand(config *v1.Config, buildArgs *dockerfile.Bui | ||||||
| 	logrus.Infof("args: %s", newCommand[1:]) | 	logrus.Infof("args: %s", newCommand[1:]) | ||||||
| 
 | 
 | ||||||
| 	cmd := exec.Command(newCommand[0], newCommand[1:]...) | 	cmd := exec.Command(newCommand[0], newCommand[1:]...) | ||||||
| 	cmd.Dir = config.WorkingDir | 
 | ||||||
|  | 	cmd.Dir = setWorkDirIfExists(config.WorkingDir) | ||||||
| 	cmd.Stdout = os.Stdout | 	cmd.Stdout = os.Stdout | ||||||
| 	cmd.Stderr = os.Stderr | 	cmd.Stderr = os.Stderr | ||||||
| 	replacementEnvs := buildArgs.ReplacementEnvs(config.Env) | 	replacementEnvs := buildArgs.ReplacementEnvs(config.Env) | ||||||
|  | @ -236,3 +237,10 @@ func (cr *CachingRunCommand) String() string { | ||||||
| func (cr *CachingRunCommand) MetadataOnly() bool { | func (cr *CachingRunCommand) MetadataOnly() bool { | ||||||
| 	return false | 	return false | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | func setWorkDirIfExists(workdir string) string { | ||||||
|  | 	if _, err := os.Lstat(workdir); err == nil { | ||||||
|  | 		return workdir | ||||||
|  | 	} | ||||||
|  | 	return "" | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -316,3 +316,12 @@ func Test_CachingRunCommand_ExecuteCommand(t *testing.T) { | ||||||
| 		}) | 		}) | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | func TestSetWorkDirIfExists(t *testing.T) { | ||||||
|  | 	testDir, err := ioutil.TempDir("", "workdir") | ||||||
|  | 	if err != nil { | ||||||
|  | 		t.Error(err) | ||||||
|  | 	} | ||||||
|  | 	testutil.CheckDeepEqual(t, testDir, setWorkDirIfExists(testDir)) | ||||||
|  | 	testutil.CheckDeepEqual(t, "", setWorkDirIfExists("doesnot-exists")) | ||||||
|  | } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue