Skip to content

Commit 780f3f0

Browse files
authored
feat: use action mode for release builds instead of release mode (#21024)
1 parent dd9f403 commit 780f3f0

2 files changed

Lines changed: 20 additions & 18 deletions

File tree

pkg/workflow/action_mode.go

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,11 @@ func (m ActionMode) UsesExternalActions() bool {
6262
}
6363

6464
// DetectActionMode determines the appropriate action mode based on the release flag.
65-
// Returns ActionModeRelease if this binary was built as a release (controlled by the
66-
// isReleaseBuild flag set via -X linker flag at build time), otherwise returns ActionModeDev.
67-
// Can be overridden with GH_AW_ACTION_MODE environment variable or GitHub Actions context.
65+
// Returns ActionModeAction if this binary was built as a release (controlled by the
66+
// isReleaseBuild flag set via -X linker flag at build time), or when running in a
67+
// GitHub Actions release context (release tags, release branches, or release events).
68+
// Returns ActionModeDev for all other cases (PRs, feature branches, local development).
69+
// Can be overridden with GH_AW_ACTION_MODE environment variable.
6870
// The version parameter is kept for backward compatibility but is no longer used for detection.
6971
func DetectActionMode(version string) ActionMode {
7072
actionModeLog.Printf("Detecting action mode: version=%s, isRelease=%v", version, IsRelease())
@@ -82,24 +84,24 @@ func DetectActionMode(version string) ActionMode {
8284
// Check if this binary was built as a release using the release flag
8385
// This flag is set at build time via -X linker flag and does not rely on version string heuristics
8486
if IsRelease() {
85-
actionModeLog.Printf("Detected release mode from build flag (isReleaseBuild=true)")
86-
return ActionModeRelease
87+
actionModeLog.Printf("Detected action mode from build flag (isReleaseBuild=true)")
88+
return ActionModeAction
8789
}
8890

8991
// Check GitHub Actions context for additional hints
9092
githubRef := os.Getenv("GITHUB_REF")
9193
githubEventName := os.Getenv("GITHUB_EVENT_NAME")
9294
actionModeLog.Printf("GitHub context: ref=%s, event=%s", githubRef, githubEventName)
9395

94-
// Release mode conditions from GitHub Actions context:
96+
// Conditions that return ActionModeAction from GitHub Actions context:
9597
// 1. Running on a release branch (refs/heads/release*)
9698
// 2. Running on a release tag (refs/tags/*)
9799
// 3. Running on a release event
98100
if strings.HasPrefix(githubRef, "refs/heads/release") ||
99101
strings.HasPrefix(githubRef, "refs/tags/") ||
100102
githubEventName == "release" {
101-
actionModeLog.Printf("Detected release mode from GitHub context: ref=%s, event=%s", githubRef, githubEventName)
102-
return ActionModeRelease
103+
actionModeLog.Printf("Detected action mode from GitHub context: ref=%s, event=%s", githubRef, githubEventName)
104+
return ActionModeAction
103105
}
104106

105107
// Default to dev mode for all other cases:

pkg/workflow/compiler_action_mode_test.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,22 +28,22 @@ func TestActionModeDetection(t *testing.T) {
2828
name: "release tag",
2929
githubRef: "refs/tags/v1.0.0",
3030
githubEvent: "push",
31-
expectedMode: ActionModeRelease,
32-
description: "Release tags should use release mode",
31+
expectedMode: ActionModeAction,
32+
description: "Release tags should use action mode",
3333
},
3434
{
3535
name: "release branch",
3636
githubRef: "refs/heads/release-1.0",
3737
githubEvent: "push",
38-
expectedMode: ActionModeRelease,
39-
description: "Release branches should use release mode",
38+
expectedMode: ActionModeAction,
39+
description: "Release branches should use action mode",
4040
},
4141
{
4242
name: "release event",
4343
githubRef: "refs/heads/main",
4444
githubEvent: "release",
45-
expectedMode: ActionModeRelease,
46-
description: "Release events should use release mode",
45+
expectedMode: ActionModeAction,
46+
description: "Release events should use action mode",
4747
},
4848
{
4949
name: "pull request",
@@ -173,8 +173,8 @@ func TestActionModeDetectionWithReleaseFlag(t *testing.T) {
173173
isRelease: true,
174174
githubRef: "",
175175
githubEvent: "",
176-
expectedMode: ActionModeRelease,
177-
description: "Release flag set to true should use release mode",
176+
expectedMode: ActionModeAction,
177+
description: "Release flag set to true should use action mode",
178178
},
179179
{
180180
name: "release flag false",
@@ -189,15 +189,15 @@ func TestActionModeDetectionWithReleaseFlag(t *testing.T) {
189189
isRelease: true,
190190
githubRef: "refs/heads/main",
191191
githubEvent: "push",
192-
expectedMode: ActionModeRelease,
192+
expectedMode: ActionModeAction,
193193
description: "Release flag should take precedence over branch",
194194
},
195195
{
196196
name: "release flag false with release tag",
197197
isRelease: false,
198198
githubRef: "refs/tags/v1.0.0",
199199
githubEvent: "push",
200-
expectedMode: ActionModeRelease,
200+
expectedMode: ActionModeAction,
201201
description: "GitHub release tag should still work when release flag is false",
202202
},
203203
{

0 commit comments

Comments
 (0)