diff --git a/pipeline/frontend/metadata/environment.go b/pipeline/frontend/metadata/environment.go index 49455af10..3b1331ce4 100644 --- a/pipeline/frontend/metadata/environment.go +++ b/pipeline/frontend/metadata/environment.go @@ -97,8 +97,8 @@ func (m *Metadata) Environ() map[string]string { setNonEmptyEnvVar(params, "CI_COMMIT_AUTHOR", commit.Author.Name) setNonEmptyEnvVar(params, "CI_COMMIT_AUTHOR_EMAIL", commit.Author.Email) setNonEmptyEnvVar(params, "CI_COMMIT_AUTHOR_AVATAR", commit.Author.Avatar) - if pipeline.Event == EventTag || pipeline.Event == EventRelease || pipeline.Event == EventDeploy || strings.HasPrefix(pipeline.Commit.Ref, "refs/tags/") { - setNonEmptyEnvVar(params, "CI_COMMIT_TAG", strings.TrimPrefix(pipeline.Commit.Ref, "refs/tags/")) + if p, f := strings.CutPrefix(pipeline.Commit.Ref, "refs/tags/"); f { + setNonEmptyEnvVar(params, "CI_COMMIT_TAG", p) } if pipeline.Event == EventRelease { setNonEmptyEnvVar(params, "CI_COMMIT_PRERELEASE", strconv.FormatBool(pipeline.Commit.IsPrerelease)) diff --git a/pipeline/frontend/metadata/environment_test.go b/pipeline/frontend/metadata/environment_test.go index 28615d19f..154aa76a5 100644 --- a/pipeline/frontend/metadata/environment_test.go +++ b/pipeline/frontend/metadata/environment_test.go @@ -26,6 +26,7 @@ func TestEnviron(t *testing.T) { Curr: Pipeline{ Event: EventRelease, Commit: Commit{ + Ref: "refs/tags/v1.2.3", IsPrerelease: true, }, }, @@ -44,4 +45,30 @@ func TestEnviron(t *testing.T) { assert.Equal(t, "true", envs["CI_COMMIT_PRERELEASE"]) assert.Equal(t, "branch-a", envs["CI_PREV_COMMIT_SOURCE_BRANCH"]) assert.Equal(t, "branch-b", envs["CI_PREV_COMMIT_TARGET_BRANCH"]) + assert.Equal(t, "[]", envs["CI_PIPELINE_FILES"]) + assert.Equal(t, "v1.2.3", envs["CI_COMMIT_TAG"]) + + m = Metadata{ + Sys: System{Name: "wp"}, + Curr: Pipeline{ + Event: EventPull, + Commit: Commit{ + ChangedFiles: []string{"readme", "license"}, + Refspec: "branch-a:branch-b", + }, + }, + Prev: Pipeline{ + Event: EventPull, + Commit: Commit{ + Refspec: "branch-a:branch-b", + }, + }, + } + + envs = m.Environ() + + _, ok := envs["CI_COMMIT_TAG"] + assert.False(t, ok) + + assert.Equal(t, `["readme","license"]`, envs["CI_PIPELINE_FILES"]) }