Skip to content

Commit

Permalink
fix(git): git warnings sometimes break werf
Browse files Browse the repository at this point in the history
Refactored true_git module:
* moved common exec.Command logic into git_cmd.go
* separated stdout/stderr channels for git cli commands output

Fixed git warnings breaking werf dev mode by ignoring stderr whenever
it is not needed.
  • Loading branch information
ilya-lesikov committed Jan 19, 2022
1 parent 4bcd7c3 commit 0a50961
Show file tree
Hide file tree
Showing 43 changed files with 264 additions and 349 deletions.
4 changes: 2 additions & 2 deletions cmd/werf/build/main.go
Expand Up @@ -155,7 +155,7 @@ func runMain(ctx context.Context, args []string) error {
return err
}

if err := true_git.Init(true_git.Options{LiveGitOutput: *commonCmdData.LogVerbose || *commonCmdData.LogDebug}); err != nil {
if err := true_git.Init(ctx, true_git.Options{LiveGitOutput: *commonCmdData.LogVerbose || *commonCmdData.LogDebug}); err != nil {
return err
}

Expand All @@ -172,7 +172,7 @@ func runMain(ctx context.Context, args []string) error {
}
}()

giterminismManager, err := common.GetGiterminismManager(&commonCmdData)
giterminismManager, err := common.GetGiterminismManager(ctx, &commonCmdData)
if err != nil {
return err
}
Expand Down
4 changes: 2 additions & 2 deletions cmd/werf/bundle/export/export.go
Expand Up @@ -155,7 +155,7 @@ func runExport(ctx context.Context) error {
return err
}

if err := true_git.Init(true_git.Options{LiveGitOutput: *commonCmdData.LogVerbose || *commonCmdData.LogDebug}); err != nil {
if err := true_git.Init(ctx, true_git.Options{LiveGitOutput: *commonCmdData.LogVerbose || *commonCmdData.LogDebug}); err != nil {
return err
}

Expand All @@ -169,7 +169,7 @@ func runExport(ctx context.Context) error {
}
}()

giterminismManager, err := common.GetGiterminismManager(&commonCmdData)
giterminismManager, err := common.GetGiterminismManager(ctx, &commonCmdData)
if err != nil {
return err
}
Expand Down
4 changes: 2 additions & 2 deletions cmd/werf/bundle/publish/publish.go
Expand Up @@ -171,7 +171,7 @@ func runPublish(ctx context.Context) error {
return err
}

if err := true_git.Init(true_git.Options{LiveGitOutput: *commonCmdData.LogVerbose || *commonCmdData.LogDebug}); err != nil {
if err := true_git.Init(ctx, true_git.Options{LiveGitOutput: *commonCmdData.LogVerbose || *commonCmdData.LogDebug}); err != nil {
return err
}

Expand All @@ -185,7 +185,7 @@ func runPublish(ctx context.Context) error {
}
}()

giterminismManager, err := common.GetGiterminismManager(&commonCmdData)
giterminismManager, err := common.GetGiterminismManager(ctx, &commonCmdData)
if err != nil {
return err
}
Expand Down
4 changes: 2 additions & 2 deletions cmd/werf/ci_env/ci_env.go
Expand Up @@ -102,7 +102,7 @@ func runCIEnv(cmd *cobra.Command, args []string) error {
return err
}

if err := true_git.Init(true_git.Options{LiveGitOutput: *commonCmdData.LogVerbose || *commonCmdData.LogDebug}); err != nil {
if err := true_git.Init(ctx, true_git.Options{LiveGitOutput: *commonCmdData.LogVerbose || *commonCmdData.LogDebug}); err != nil {
return err
}

Expand Down Expand Up @@ -343,7 +343,7 @@ func generateGithubEnvs(ctx context.Context, w io.Writer, dockerConfig string) e
func generateGithubDefaultRepo(ctx context.Context, defaultRegistry, ciGithubDockerPackage string) (string, error) {
var defaultRepo string
if ciGithubDockerPackage != "" {
giterminismManager, err := common.GetGiterminismManager(&commonCmdData)
giterminismManager, err := common.GetGiterminismManager(ctx, &commonCmdData)
if err != nil {
return "", err
}
Expand Down
6 changes: 3 additions & 3 deletions cmd/werf/cleanup/cleanup.go
Expand Up @@ -116,7 +116,7 @@ func runCleanup(ctx context.Context) error {
return err
}

if err := true_git.Init(true_git.Options{LiveGitOutput: *commonCmdData.LogVerbose || *commonCmdData.LogDebug}); err != nil {
if err := true_git.Init(ctx, true_git.Options{LiveGitOutput: *commonCmdData.LogVerbose || *commonCmdData.LogDebug}); err != nil {
return err
}

Expand All @@ -143,7 +143,7 @@ func runCleanup(ctx context.Context) error {
return err
}

giterminismManager, err := common.GetGiterminismManager(&commonCmdData)
giterminismManager, err := common.GetGiterminismManager(ctx, &commonCmdData)
if err != nil {
return err
}
Expand All @@ -162,7 +162,7 @@ func runCleanup(ctx context.Context) error {
}

if !werfConfig.Meta.GitWorktree.GetForceShallowClone() && !werfConfig.Meta.GitWorktree.GetAllowFetchingOriginBranchesAndTags() {
isShallow, err := giterminismManager.LocalGitRepo().IsShallowClone()
isShallow, err := giterminismManager.LocalGitRepo().IsShallowClone(ctx)
if err != nil {
return fmt.Errorf("check shallow clone failed: %s", err)
}
Expand Down
10 changes: 5 additions & 5 deletions cmd/werf/common/common.go
Expand Up @@ -1163,10 +1163,10 @@ func GetWerfConfigOptions(cmdData *CmdData, logRenderedFilePath bool) config.Wer
}
}

func GetGiterminismManager(cmdData *CmdData) (giterminism_manager.Interface, error) {
func GetGiterminismManager(ctx context.Context, cmdData *CmdData) (giterminism_manager.Interface, error) {
workingDir := GetWorkingDir(cmdData)

gitWorkTree, err := GetGitWorkTree(cmdData, workingDir)
gitWorkTree, err := GetGitWorkTree(ctx, cmdData, workingDir)
if err != nil {
return nil, err
}
Expand Down Expand Up @@ -1200,11 +1200,11 @@ func GetGiterminismManager(cmdData *CmdData) (giterminism_manager.Interface, err
})
}

func GetGitWorkTree(cmdData *CmdData, workingDir string) (string, error) {
func GetGitWorkTree(ctx context.Context, cmdData *CmdData, workingDir string) (string, error) {
if *cmdData.GitWorkTree != "" {
workTree := *cmdData.GitWorkTree

if isValid, err := true_git.IsValidWorkTree(workTree); err != nil {
if isValid, err := true_git.IsValidWorkTree(ctx, workTree); err != nil {
return "", err
} else if isValid {
return util.GetAbsoluteFilepath(workTree), nil
Expand All @@ -1213,7 +1213,7 @@ func GetGitWorkTree(cmdData *CmdData, workingDir string) (string, error) {
return "", fmt.Errorf("werf requires a git work tree for the project to exist: not a valid git work tree %q specified", workTree)
}

if found, workTree, err := true_git.UpwardLookupAndVerifyWorkTree(workingDir); err != nil {
if found, workTree, err := true_git.UpwardLookupAndVerifyWorkTree(ctx, workingDir); err != nil {
return "", err
} else if found {
return util.GetAbsoluteFilepath(workTree), nil
Expand Down
2 changes: 1 addition & 1 deletion cmd/werf/common/follow.go
Expand Up @@ -21,7 +21,7 @@ func FollowGitHead(ctx context.Context, cmdData *CmdData, taskFunc func(ctx cont

var savedHeadCommit string
iterFunc := func() error {
giterminismManager, err := GetGiterminismManager(cmdData)
giterminismManager, err := GetGiterminismManager(ctx, cmdData)
if err != nil {
return fmt.Errorf("unable to get giterminism manager: %s", err)
}
Expand Down
4 changes: 2 additions & 2 deletions cmd/werf/compose/main.go
Expand Up @@ -317,7 +317,7 @@ func runMain(ctx context.Context, dockerComposeCmdName string, cmdData composeCm
return err
}

if err := true_git.Init(true_git.Options{LiveGitOutput: *commonCmdData.LogVerbose || *commonCmdData.LogDebug}); err != nil {
if err := true_git.Init(ctx, true_git.Options{LiveGitOutput: *commonCmdData.LogVerbose || *commonCmdData.LogDebug}); err != nil {
return err
}

Expand All @@ -331,7 +331,7 @@ func runMain(ctx context.Context, dockerComposeCmdName string, cmdData composeCm
}
}()

giterminismManager, err := common.GetGiterminismManager(&commonCmdData)
giterminismManager, err := common.GetGiterminismManager(ctx, &commonCmdData)
if err != nil {
return err
}
Expand Down
4 changes: 2 additions & 2 deletions cmd/werf/config/list/list.go
Expand Up @@ -68,11 +68,11 @@ func run() error {
return err
}

if err := true_git.Init(true_git.Options{LiveGitOutput: *commonCmdData.LogVerbose || *commonCmdData.LogDebug}); err != nil {
if err := true_git.Init(ctx, true_git.Options{LiveGitOutput: *commonCmdData.LogVerbose || *commonCmdData.LogDebug}); err != nil {
return err
}

giterminismManager, err := common.GetGiterminismManager(&commonCmdData)
giterminismManager, err := common.GetGiterminismManager(ctx, &commonCmdData)
if err != nil {
return err
}
Expand Down
4 changes: 2 additions & 2 deletions cmd/werf/config/render/render.go
Expand Up @@ -41,11 +41,11 @@ func NewCmd() *cobra.Command {
return err
}

if err := true_git.Init(true_git.Options{LiveGitOutput: *commonCmdData.LogVerbose || *commonCmdData.LogDebug}); err != nil {
if err := true_git.Init(ctx, true_git.Options{LiveGitOutput: *commonCmdData.LogVerbose || *commonCmdData.LogDebug}); err != nil {
return err
}

giterminismManager, err := common.GetGiterminismManager(&commonCmdData)
giterminismManager, err := common.GetGiterminismManager(ctx, &commonCmdData)
if err != nil {
return err
}
Expand Down
4 changes: 2 additions & 2 deletions cmd/werf/converge/converge.go
Expand Up @@ -195,7 +195,7 @@ func runMain(ctx context.Context) error {
return err
}

if err := true_git.Init(true_git.Options{LiveGitOutput: *commonCmdData.LogVerbose || *commonCmdData.LogDebug}); err != nil {
if err := true_git.Init(ctx, true_git.Options{LiveGitOutput: *commonCmdData.LogVerbose || *commonCmdData.LogDebug}); err != nil {
return err
}

Expand All @@ -209,7 +209,7 @@ func runMain(ctx context.Context) error {
}
}()

giterminismManager, err := common.GetGiterminismManager(&commonCmdData)
giterminismManager, err := common.GetGiterminismManager(ctx, &commonCmdData)
if err != nil {
return err
}
Expand Down
4 changes: 2 additions & 2 deletions cmd/werf/dismiss/dismiss.go
Expand Up @@ -143,7 +143,7 @@ func runDismiss(ctx context.Context) error {
return err
}

if err := true_git.Init(true_git.Options{LiveGitOutput: *commonCmdData.LogVerbose || *commonCmdData.LogDebug}); err != nil {
if err := true_git.Init(ctx, true_git.Options{LiveGitOutput: *commonCmdData.LogVerbose || *commonCmdData.LogDebug}); err != nil {
return err
}

Expand All @@ -157,7 +157,7 @@ func runDismiss(ctx context.Context) error {

common.LogKubeContext(kube.Context)

giterminismManager, err := common.GetGiterminismManager(&commonCmdData)
giterminismManager, err := common.GetGiterminismManager(ctx, &commonCmdData)
if err != nil {
return err
}
Expand Down
4 changes: 2 additions & 2 deletions cmd/werf/export/export.go
Expand Up @@ -136,15 +136,15 @@ func run(ctx context.Context, imagesToProcess, tagTemplateList []string) error {
return err
}

if err := true_git.Init(true_git.Options{LiveGitOutput: *commonCmdData.LogVerbose || *commonCmdData.LogDebug}); err != nil {
if err := true_git.Init(ctx, true_git.Options{LiveGitOutput: *commonCmdData.LogVerbose || *commonCmdData.LogDebug}); err != nil {
return err
}

if err := common.DockerRegistryInit(ctx, &commonCmdData); err != nil {
return err
}

giterminismManager, err := common.GetGiterminismManager(&commonCmdData)
giterminismManager, err := common.GetGiterminismManager(ctx, &commonCmdData)
if err != nil {
return err
}
Expand Down
4 changes: 2 additions & 2 deletions cmd/werf/helm/get_autogenerated_values.go
Expand Up @@ -120,15 +120,15 @@ func runGetServiceValues(ctx context.Context) error {
return err
}

if err := true_git.Init(true_git.Options{LiveGitOutput: *getAutogeneratedValuedCmdData.LogVerbose || *getAutogeneratedValuedCmdData.LogDebug}); err != nil {
if err := true_git.Init(ctx, true_git.Options{LiveGitOutput: *getAutogeneratedValuedCmdData.LogVerbose || *getAutogeneratedValuedCmdData.LogDebug}); err != nil {
return err
}

if err := common.DockerRegistryInit(ctx, &getAutogeneratedValuedCmdData); err != nil {
return err
}

giterminismManager, err := common.GetGiterminismManager(&getAutogeneratedValuedCmdData)
giterminismManager, err := common.GetGiterminismManager(ctx, &getAutogeneratedValuedCmdData)
if err != nil {
return err
}
Expand Down
4 changes: 2 additions & 2 deletions cmd/werf/helm/get_namespace.go
Expand Up @@ -62,11 +62,11 @@ func runGetNamespace() error {
return err
}

if err := true_git.Init(true_git.Options{LiveGitOutput: *getNamespaceCmdData.LogVerbose || *getNamespaceCmdData.LogDebug}); err != nil {
if err := true_git.Init(ctx, true_git.Options{LiveGitOutput: *getNamespaceCmdData.LogVerbose || *getNamespaceCmdData.LogDebug}); err != nil {
return err
}

giterminismManager, err := common.GetGiterminismManager(&getNamespaceCmdData)
giterminismManager, err := common.GetGiterminismManager(ctx, &getNamespaceCmdData)
if err != nil {
return err
}
Expand Down
4 changes: 2 additions & 2 deletions cmd/werf/helm/get_release.go
Expand Up @@ -62,11 +62,11 @@ func runGetRelease() error {
return err
}

if err := true_git.Init(true_git.Options{LiveGitOutput: *getReleaseCmdData.LogVerbose || *getReleaseCmdData.LogDebug}); err != nil {
if err := true_git.Init(ctx, true_git.Options{LiveGitOutput: *getReleaseCmdData.LogVerbose || *getReleaseCmdData.LogDebug}); err != nil {
return err
}

giterminismManager, err := common.GetGiterminismManager(&getReleaseCmdData)
giterminismManager, err := common.GetGiterminismManager(ctx, &getReleaseCmdData)
if err != nil {
return err
}
Expand Down
4 changes: 2 additions & 2 deletions cmd/werf/helm/secret/rotate_secret_key/rotate_secret_key.go
Expand Up @@ -80,11 +80,11 @@ func runRotateSecretKey(ctx context.Context, cmd *cobra.Command, secretValuesPat
return err
}

if err := true_git.Init(true_git.Options{LiveGitOutput: *commonCmdData.LogVerbose || *commonCmdData.LogDebug}); err != nil {
if err := true_git.Init(ctx, true_git.Options{LiveGitOutput: *commonCmdData.LogVerbose || *commonCmdData.LogDebug}); err != nil {
return err
}

giterminismManager, err := common.GetGiterminismManager(&commonCmdData)
giterminismManager, err := common.GetGiterminismManager(ctx, &commonCmdData)
if err != nil {
return err
}
Expand Down
2 changes: 1 addition & 1 deletion cmd/werf/host/cleanup/cleanup.go
Expand Up @@ -111,7 +111,7 @@ func runGC(ctx context.Context) error {
return err
}

if err := true_git.Init(true_git.Options{LiveGitOutput: *commonCmdData.LogVerbose || *commonCmdData.LogDebug}); err != nil {
if err := true_git.Init(ctx, true_git.Options{LiveGitOutput: *commonCmdData.LogVerbose || *commonCmdData.LogDebug}); err != nil {
return err
}

Expand Down
4 changes: 2 additions & 2 deletions cmd/werf/managed_images/add/add.go
Expand Up @@ -100,7 +100,7 @@ func run(ctx context.Context, imageName string) error {
return err
}

if err := true_git.Init(true_git.Options{LiveGitOutput: *commonCmdData.LogVerbose || *commonCmdData.LogDebug}); err != nil {
if err := true_git.Init(ctx, true_git.Options{LiveGitOutput: *commonCmdData.LogVerbose || *commonCmdData.LogDebug}); err != nil {
return err
}

Expand All @@ -122,7 +122,7 @@ func run(ctx context.Context, imageName string) error {
}
defer tmp_manager.ReleaseProjectDir(projectTmpDir)

giterminismManager, err := common.GetGiterminismManager(&commonCmdData)
giterminismManager, err := common.GetGiterminismManager(ctx, &commonCmdData)
if err != nil {
return err
}
Expand Down
4 changes: 2 additions & 2 deletions cmd/werf/managed_images/ls/ls.go
Expand Up @@ -96,7 +96,7 @@ func run(ctx context.Context) error {
return err
}

if err := true_git.Init(true_git.Options{LiveGitOutput: *commonCmdData.LogVerbose || *commonCmdData.LogDebug}); err != nil {
if err := true_git.Init(ctx, true_git.Options{LiveGitOutput: *commonCmdData.LogVerbose || *commonCmdData.LogDebug}); err != nil {
return err
}

Expand All @@ -118,7 +118,7 @@ func run(ctx context.Context) error {
}
defer tmp_manager.ReleaseProjectDir(projectTmpDir)

giterminismManager, err := common.GetGiterminismManager(&commonCmdData)
giterminismManager, err := common.GetGiterminismManager(ctx, &commonCmdData)
if err != nil {
return err
}
Expand Down
4 changes: 2 additions & 2 deletions cmd/werf/managed_images/rm/rm.go
Expand Up @@ -100,7 +100,7 @@ func run(ctx context.Context, imageNames []string) error {
return err
}

if err := true_git.Init(true_git.Options{LiveGitOutput: *commonCmdData.LogVerbose || *commonCmdData.LogDebug}); err != nil {
if err := true_git.Init(ctx, true_git.Options{LiveGitOutput: *commonCmdData.LogVerbose || *commonCmdData.LogDebug}); err != nil {
return err
}

Expand All @@ -122,7 +122,7 @@ func run(ctx context.Context, imageNames []string) error {
}
defer tmp_manager.ReleaseProjectDir(projectTmpDir)

giterminismManager, err := common.GetGiterminismManager(&commonCmdData)
giterminismManager, err := common.GetGiterminismManager(ctx, &commonCmdData)
if err != nil {
return err
}
Expand Down
4 changes: 2 additions & 2 deletions cmd/werf/purge/purge.go
Expand Up @@ -108,7 +108,7 @@ func runPurge(ctx context.Context) error {
return err
}

if err := true_git.Init(true_git.Options{LiveGitOutput: *commonCmdData.LogVerbose || *commonCmdData.LogDebug}); err != nil {
if err := true_git.Init(ctx, true_git.Options{LiveGitOutput: *commonCmdData.LogVerbose || *commonCmdData.LogDebug}); err != nil {
return err
}

Expand All @@ -120,7 +120,7 @@ func runPurge(ctx context.Context) error {
return err
}

giterminismManager, err := common.GetGiterminismManager(&commonCmdData)
giterminismManager, err := common.GetGiterminismManager(ctx, &commonCmdData)
if err != nil {
return err
}
Expand Down
4 changes: 2 additions & 2 deletions cmd/werf/render/render.go
Expand Up @@ -160,11 +160,11 @@ func runRender(ctx context.Context) error {
return err
}

if err := true_git.Init(true_git.Options{LiveGitOutput: *commonCmdData.LogVerbose || *commonCmdData.LogDebug}); err != nil {
if err := true_git.Init(ctx, true_git.Options{LiveGitOutput: *commonCmdData.LogVerbose || *commonCmdData.LogDebug}); err != nil {
return err
}

giterminismManager, err := common.GetGiterminismManager(&commonCmdData)
giterminismManager, err := common.GetGiterminismManager(ctx, &commonCmdData)
if err != nil {
return err
}
Expand Down

0 comments on commit 0a50961

Please sign in to comment.