From d18bc538db90c9cf2f09675d8bfc210ea4f16443 Mon Sep 17 00:00:00 2001 From: Alexander Matyushentsev Date: Fri, 30 Oct 2020 10:48:50 -0700 Subject: [PATCH] fix: webhook don't refresh apps pointing to HEAD --- util/webhook/webhook.go | 4 +--- util/webhook/webhook_test.go | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/util/webhook/webhook.go b/util/webhook/webhook.go index eea68e4166b3..69bfe50d09a9 100644 --- a/util/webhook/webhook.go +++ b/util/webhook/webhook.go @@ -307,9 +307,7 @@ func ensureAbsPath(input string) string { func appRevisionHasChanged(app *v1alpha1.Application, revision string, touchedHead bool) bool { targetRev := app.Spec.Source.TargetRevision if targetRev == "HEAD" || targetRev == "" { // revision is head - if !touchedHead { // and head has not updated - return false // revision has not changed - } + return touchedHead } return targetRev == revision diff --git a/util/webhook/webhook_test.go b/util/webhook/webhook_test.go index 58c2b2ad91ca..c78e46a8e3c0 100644 --- a/util/webhook/webhook_test.go +++ b/util/webhook/webhook_test.go @@ -155,3 +155,25 @@ func Test_getAppRefreshPrefix(t *testing.T) { }) } } + +func TestAppRevisionHasChanged(t *testing.T) { + assert.True(t, appRevisionHasChanged(&v1alpha1.Application{Spec: v1alpha1.ApplicationSpec{ + Source: v1alpha1.ApplicationSource{}, + }}, "master", true)) + + assert.False(t, appRevisionHasChanged(&v1alpha1.Application{Spec: v1alpha1.ApplicationSpec{ + Source: v1alpha1.ApplicationSource{}, + }}, "master", false)) + + assert.False(t, appRevisionHasChanged(&v1alpha1.Application{Spec: v1alpha1.ApplicationSpec{ + Source: v1alpha1.ApplicationSource{ + TargetRevision: "dev", + }, + }}, "master", true)) + + assert.True(t, appRevisionHasChanged(&v1alpha1.Application{Spec: v1alpha1.ApplicationSpec{ + Source: v1alpha1.ApplicationSource{ + TargetRevision: "dev", + }, + }}, "dev", false)) +}