ci: force release-please tag creation (#126)

* ci: force release-please tag creation

* no-mistakes: apply agent fixes
This commit is contained in:
Kun Chen
2026-04-21 12:02:21 -07:00
committed by GitHub
parent f17bddc717
commit d3c24b0efe
3 changed files with 40 additions and 2 deletions
-1
View File
@@ -76,7 +76,6 @@ jobs:
- uses: googleapis/release-please-action@v4
id: release
with:
release-type: go
config-file: release-please-config.json
manifest-file: .release-please-manifest.json
+2 -1
View File
@@ -4,7 +4,8 @@
"release-type": "go",
"bump-minor-pre-major": true,
"bump-patch-for-minor-pre-major": true,
"draft": true
"draft": true,
"force-tag-creation": true
}
},
"$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json"
+38
View File
@@ -127,6 +127,44 @@ func TestReleasePleaseConfigCreatesDrafts(t *testing.T) {
}
}
func TestReleasePleaseConfigForcesTagCreation(t *testing.T) {
data, err := os.ReadFile("release-please-config.json")
if err != nil {
t.Fatalf("read config: %v", err)
}
var cfg struct {
Packages map[string]struct {
ForceTagCreation bool `json:"force-tag-creation"`
} `json:"packages"`
}
if err := json.Unmarshal(data, &cfg); err != nil {
t.Fatalf("parse config: %v", err)
}
pkg, ok := cfg.Packages["."]
if !ok {
t.Fatalf("release-please config missing '.' package")
}
if !pkg.ForceTagCreation {
t.Fatalf("release-please config must force tag creation so an existing GitHub release cannot silently prevent the tag from being recreated")
}
}
func TestReleaseWorkflowDoesNotOverrideReleaseType(t *testing.T) {
data, err := os.ReadFile(".github/workflows/release.yml")
if err != nil {
t.Fatalf("read workflow: %v", err)
}
content := string(data)
block := extractJobBlock(t, content, "release-please")
if strings.Contains(block, "release-type:") {
t.Fatalf("release workflow must not override release-type; release-please should read it from release-please-config.json")
}
if !strings.Contains(block, "config-file: release-please-config.json") {
t.Fatalf("release workflow must point release-please at release-please-config.json")
}
}
func TestReleaseWorkflowPromotesDraftOnlyAfterAssetsComplete(t *testing.T) {
data, err := os.ReadFile(".github/workflows/release.yml")
if err != nil {