Skip to content

Commit 7948db8

Browse files
authored
feat(tibuild): add paramPluginGitRef CloudEvent extension (#531)
## Summary Add `paramPluginGitRef` CloudEvent extension in tibuild's `newDevBuildCloudEvents()` when `PluginGitRef` is non-empty. ## Changes - `cloud_event_client.go`: Add conditional `event.SetExtension("paramPluginGitRef", dev.Spec.PluginGitRef)` after existing extensions - `cloud_event_client_test.go`: Add 2 unit tests — non-empty (verifies extension present) and empty (verifies extension absent) ## Testing - `TestNewEventPluginGitRef`: PluginGitRef="release-8.5.4" → CloudEvent includes `ce-paramPluginGitRef` header - `TestNewEventPluginGitRefEmpty`: PluginGitRef="" → no `paramPluginGitRef` extension - Full package tests pass: `go test ./pkg/rest/service/` - `go vet` clean ## Risk Low. Additive-only change — new extension is only set when PluginGitRef is non-empty, so existing behavior is unchanged. Tekton ignores unknown extensions. ## Rollback Remove the `SetExtension` line — CloudEvent reverts, Tekton falls back to derived ref. Refs: FLA-225 PR1 --------- Signed-off-by: wuhuizuo <wuhuizuo@126.com>
1 parent e2c9b20 commit 7948db8

4 files changed

Lines changed: 73 additions & 0 deletions

File tree

experiments/tibuild-v2/internal/service/impl/devbuild_tekton.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,9 @@ func (s *devbuildsrvc) newDevBuildCloudEvent(record *ent.DevBuild, platform stri
140140
if platform != "" {
141141
event.SetExtension("paramPlatform", platform)
142142
}
143+
if record.PluginGitRef != "" {
144+
event.SetExtension("paramPluginGitRef", record.PluginGitRef)
145+
}
143146

144147
return &event, nil
145148
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package impl
2+
3+
import (
4+
"testing"
5+
6+
"github.com/PingCAP-QE/ee-apps/tibuild/internal/database/ent"
7+
"github.com/stretchr/testify/require"
8+
)
9+
10+
func TestNewDevBuildCloudEvent_PluginGitRef(t *testing.T) {
11+
s := &devbuildsrvc{}
12+
record := &ent.DevBuild{
13+
ID: 1,
14+
CreatedBy: "test@pingcap.com",
15+
Product: "tidb",
16+
Edition: "community",
17+
GithubRepo: "pingcap/tidb",
18+
GitRef: "branch/master",
19+
PluginGitRef: "release-8.5.4",
20+
}
21+
22+
event, err := s.newDevBuildCloudEvent(record, LinuxAmd64)
23+
require.NoError(t, err)
24+
require.Equal(t, "release-8.5.4", event.Extensions()["paramplugingitref"])
25+
}
26+
27+
func TestNewDevBuildCloudEvent_PluginGitRefEmpty(t *testing.T) {
28+
s := &devbuildsrvc{}
29+
record := &ent.DevBuild{
30+
ID: 1,
31+
CreatedBy: "test@pingcap.com",
32+
Product: "tidb",
33+
Edition: "community",
34+
GithubRepo: "pingcap/tidb",
35+
GitRef: "branch/master",
36+
PluginGitRef: "",
37+
}
38+
39+
event, err := s.newDevBuildCloudEvent(record, LinuxAmd64)
40+
require.NoError(t, err)
41+
_, ok := event.Extensions()["paramplugingitref"]
42+
require.False(t, ok)
43+
}

tibuild/pkg/rest/service/cloud_event_client.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,9 @@ func newDevBuildCloudEvents(dev DevBuild) ([]cloudevents.Event, error) {
108108
if platform != "" {
109109
event.SetExtension("paramPlatform", platform)
110110
}
111+
if dev.Spec.PluginGitRef != "" {
112+
event.SetExtension("paramPluginGitRef", dev.Spec.PluginGitRef)
113+
}
111114
events = append(events, event)
112115
}
113116

tibuild/pkg/rest/service/cloud_event_client_test.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,30 @@ func TestNewEventNormalizesNextGenProfile(t *testing.T) {
4646
require.Equal(t, "nextgen", evs[1].Extensions()["paramprofile"])
4747
}
4848

49+
func TestNewEventPluginGitRef(t *testing.T) {
50+
dev := sampleDevBuild()
51+
dev.Spec.GitHash = "754095a9f460dcf31f053045cfedfb00b9ad8e81"
52+
dev.Spec.PluginGitRef = "release-8.5.4"
53+
54+
evs, err := newDevBuildCloudEvents(dev)
55+
require.NoError(t, err)
56+
require.Len(t, evs, 2)
57+
require.Equal(t, "release-8.5.4", evs[0].Extensions()["paramplugingitref"])
58+
require.Equal(t, "release-8.5.4", evs[1].Extensions()["paramplugingitref"])
59+
}
60+
61+
func TestNewEventPluginGitRefEmpty(t *testing.T) {
62+
dev := sampleDevBuild()
63+
dev.Spec.GitHash = "754095a9f460dcf31f053045cfedfb00b9ad8e81"
64+
dev.Spec.PluginGitRef = ""
65+
66+
evs, err := newDevBuildCloudEvents(dev)
67+
require.NoError(t, err)
68+
require.Len(t, evs, 2)
69+
_, ok := evs[0].Extensions()["paramplugingitref"]
70+
require.False(t, ok)
71+
}
72+
4973
func TestTrigger(t *testing.T) {
5074
if os.Getenv("TEST_FANOUT") == "" {
5175
t.Skip("Skipping send event")

0 commit comments

Comments
 (0)