Only set tag env on tags (#6142)

This commit is contained in:
qwerty287
2026-02-22 08:42:50 +01:00
committed by GitHub
parent ed91636b9a
commit 95048409f2
2 changed files with 29 additions and 2 deletions

View File

@@ -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))

View File

@@ -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"])
}