From 2bfb4c0e2577308d5725f433cbb2442b116b5186 Mon Sep 17 00:00:00 2001 From: oscarzhou Date: Thu, 17 Aug 2023 13:12:42 +1200 Subject: [PATCH] fix(stack/git): clone to non-version project path during auto update --- api/git/update/update.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/api/git/update/update.go b/api/git/update/update.go index 203e361dd..6c86605f3 100644 --- a/api/git/update/update.go +++ b/api/git/update/update.go @@ -48,10 +48,6 @@ func UpdateGitObject(gitService portainer.GitService, objId string, gitConfig *g } toDir := projectPath - if enableVersionFolder { - toDir = filesystem.JoinPaths(projectPath, newHash) - } - cloneParams := &cloneRepositoryParameters{ url: gitConfig.URL, ref: gitConfig.ReferenceName, @@ -65,10 +61,20 @@ func UpdateGitObject(gitService portainer.GitService, objId string, gitConfig *g } } + // For backward compatibility, we need to clone the repository in the old project path if err := cloneGitRepository(gitService, cloneParams); err != nil { return false, "", errors.WithMessagef(err, "failed to do a fresh clone of %v", objId) } + if enableVersionFolder { + toDir = filesystem.JoinPaths(projectPath, newHash) + cloneParams.toDir = toDir + + if err := cloneGitRepository(gitService, cloneParams); err != nil { + return false, "", errors.WithMessagef(err, "failed to do a fresh clone of %v", objId) + } + } + log.Debug(). Str("hash", newHash). Str("url", gitConfig.URL).