diff --git a/.github/workflows/agentic_commands.yml b/.github/workflows/agentic_commands.yml index 2bda2f25f6..07c4a60a94 100644 --- a/.github/workflows/agentic_commands.yml +++ b/.github/workflows/agentic_commands.yml @@ -1,4 +1,4 @@ -# gh-aw-commands: {"payload_version":"v1","schema_version":"v1","compiler_version":"26cb048","commands":["ace","approach-validator","archie","brave","cloclo","craft","grumpy","mergefest","nit","plan","poem-bot","review","security-review","summarize","tidy","unbloat"],"workflows":["ace-editor","approach-validator","archie","brave","cloclo","craft","grumpy-reviewer","mergefest","pdf-summary","plan","poem-bot","pr-code-quality-reviewer","pr-nitpick-reviewer","security-review","tidy","unbloat-docs"]} +# gh-aw-commands: {"payload_version":"v1","schema_version":"v1","compiler_version":"dev","commands":["ace","approach-validator","archie","brave","cloclo","craft","grumpy","mergefest","nit","plan","poem-bot","review","security-review","summarize","tidy","unbloat"],"workflows":["ace-editor","approach-validator","archie","brave","cloclo","craft","grumpy-reviewer","mergefest","pdf-summary","plan","poem-bot","pr-code-quality-reviewer","pr-nitpick-reviewer","security-review","tidy","unbloat-docs"]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ diff --git a/pkg/workflow/central_slash_command_workflow.go b/pkg/workflow/central_slash_command_workflow.go index 1cfd4c4e0c..31b64abf7d 100644 --- a/pkg/workflow/central_slash_command_workflow.go +++ b/pkg/workflow/central_slash_command_workflow.go @@ -208,10 +208,14 @@ func buildCommandsHeaderMetadata(routesByCommand map[string][]slashCommandRoute) workflows = append(workflows, workflowID) } sort.Strings(workflows) + metadataCompilerVersion := "dev" + if IsRelease() && strings.TrimSpace(GetVersion()) != "" { + metadataCompilerVersion = GetVersion() + } return commandsHeaderMetadata{ PayloadVersion: "v1", SchemaVersion: "v1", - Compiler: GetVersion(), + Compiler: metadataCompilerVersion, Commands: commands, Workflows: workflows, } diff --git a/pkg/workflow/central_slash_command_workflow_test.go b/pkg/workflow/central_slash_command_workflow_test.go index f45bdee269..5e8ff99878 100644 --- a/pkg/workflow/central_slash_command_workflow_test.go +++ b/pkg/workflow/central_slash_command_workflow_test.go @@ -16,6 +16,14 @@ import ( func TestGenerateCentralSlashCommandWorkflow_GeneratesWorkflow(t *testing.T) { tmpDir := testutil.TempDir(t, "central-slash-workflow-test") t.Setenv("GH_AW_ACTION_MODE", "dev") + originalVersion := compilerVersion + originalIsRelease := isReleaseBuild + t.Cleanup(func() { + compilerVersion = originalVersion + isReleaseBuild = originalIsRelease + }) + SetVersion("c610c2a") + SetIsRelease(false) data := []*WorkflowData{ { @@ -52,7 +60,7 @@ func TestGenerateCentralSlashCommandWorkflow_GeneratesWorkflow(t *testing.T) { require.NoError(t, json.Unmarshal([]byte(metadataJSON), &metadata)) require.Equal(t, "v1", metadata.PayloadVersion) require.Equal(t, "v1", metadata.SchemaVersion) - require.NotEmpty(t, metadata.Compiler) + require.Equal(t, "dev", metadata.Compiler) require.Equal(t, []string{"cloclo", "triage"}, metadata.Commands) require.Equal(t, []string{"cloclo", "triage-issue", "triage-pr"}, metadata.Workflows) @@ -184,6 +192,31 @@ func TestGenerateCentralSlashCommandWorkflow_UsesCentralizedRunsOnResolution(t * require.Contains(t, string(content), "runs-on: self-hosted") } +func TestBuildCommandsHeaderMetadata_UsesReleaseVersionOnlyForReleaseBuilds(t *testing.T) { + originalVersion := compilerVersion + originalIsRelease := isReleaseBuild + t.Cleanup(func() { + compilerVersion = originalVersion + isReleaseBuild = originalIsRelease + }) + + routesByCommand := map[string][]slashCommandRoute{ + "triage": { + {Workflow: "triage-issue", Events: []string{"issues"}}, + }, + } + + SetVersion("abc1234") + SetIsRelease(false) + metadata := buildCommandsHeaderMetadata(routesByCommand) + require.Equal(t, "dev", metadata.Compiler) + + SetVersion("v1.2.3") + SetIsRelease(true) + metadata = buildCommandsHeaderMetadata(routesByCommand) + require.Equal(t, "v1.2.3", metadata.Compiler) +} + func typeSetKeys(typeSet map[string]bool) []string { out := make([]string, 0, len(typeSet)) for key := range typeSet {