in command-runner/pkg/features/artifact_creator.go [18:50]
func ArtifactCreator(artifactDir string, bindToPath string, envToSet string) runner.Feature {
return func(ctx context.Context, plan runner.Plan, e runner.PlanExecutor) error {
log.Ctx(ctx).Debug().Msg("ENTER ArtifactCreator")
if err := os.MkdirAll(artifactDir, 0755); err != nil {
return err
}
envCfg := plan.EnvironmentConfiguration()
if envCfg.Env == nil {
envCfg.Env = make(map[string]string)
}
if envToSet != "" {
if bindToPath != "" {
envCfg.Env[envToSet] = bindToPath
} else {
envCfg.Env[envToSet] = artifactDir
}
}
if bindToPath != "" {
envCfg.FileMaps = append(envCfg.FileMaps, &runner.FileMap{
SourcePath: artifactDir,
TargetPath: bindToPath,
Type: runner.FileMapTypeBind,
})
}
err := e(ctx)
if zipErr := newArtifactZipper(artifactDir)(ctx); zipErr != nil {
log.Ctx(ctx).Error().Err(zipErr).Msgf("unable to zip artifact")
}
log.Ctx(ctx).Debug().Msg("EXIT ArtifactCreator")
return err
}
}