diff --git a/integration/agentcompat/internal/workflowpolicy/agent_stress_workflow_test.go b/integration/agentcompat/internal/workflowpolicy/agent_stress_workflow_test.go index e36c0980..a2257fde 100644 --- a/integration/agentcompat/internal/workflowpolicy/agent_stress_workflow_test.go +++ b/integration/agentcompat/internal/workflowpolicy/agent_stress_workflow_test.go @@ -6,6 +6,7 @@ import ( "os" "path/filepath" "regexp" + "strings" "testing" "github.com/stretchr/testify/require" @@ -32,7 +33,7 @@ func TestPolicy_AgentStressWorkflowRunsPinnedCrossRepositoryTest(t *testing.T) { require.Equal(t, "Linux agent compatibility stress", stressJob.Name) require.Equal(t, "ubuntu-24.04", stressJob.RunsOn) require.Equal(t, 75, stressJob.TimeoutMinutes) - require.Len(t, stressJob.Steps, 6) + require.Len(t, stressJob.Steps, 7) agentCheckout := stressJob.stepNamed(t, "Checkout Agent revision") require.Equal(t, "actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0", agentCheckout.Uses) @@ -53,6 +54,16 @@ func TestPolicy_AgentStressWorkflowRunsPinnedCrossRepositoryTest(t *testing.T) { require.Equal(t, "^1.26.1", setupGo.With.GoVersion) require.False(t, *setupGo.With.Cache) + prepareDashboardInputs := stressJob.stepNamed(t, "Prepare Dashboard build inputs") + require.Equal(t, "nezha", prepareDashboardInputs.WorkingDirectory) + require.Equal(t, strings.Join([]string{ + "go install github.com/swaggo/swag/cmd/swag@v1.16.6", + "mkdir -p cmd/dashboard/user-dist cmd/dashboard/admin-dist", + "printf 'placeholder\\n' > cmd/dashboard/user-dist/placeholder.txt", + "printf 'placeholder\\n' > cmd/dashboard/admin-dist/placeholder.txt", + "swag init --pd -d cmd/dashboard -g main.go -o cmd/dashboard/docs", + }, "\n"), strings.TrimSpace(prepareDashboardInputs.Run)) + policyStep := stressJob.stepNamed(t, "Require Agent workflow policy tests") require.Equal(t, "nezha", policyStep.WorkingDirectory) require.Equal(t, "go test -mod=readonly -tags=agentcompat -list '^TestPolicy_AgentQualityWorkflow$' ./integration/agentcompat/internal/workflowpolicy | grep -Fx 'TestPolicy_AgentQualityWorkflow'\ngo test -mod=readonly -tags=agentcompat -list '^TestPolicy_AgentStressWorkflowRunsPinnedCrossRepositoryTest$' ./integration/agentcompat/internal/workflowpolicy | grep -Fx 'TestPolicy_AgentStressWorkflowRunsPinnedCrossRepositoryTest'\ngo test -mod=readonly -tags=agentcompat -run '^(TestPolicy_AgentQualityWorkflow|TestPolicy_AgentStressWorkflowRunsPinnedCrossRepositoryTest)$' -count=1 ./integration/agentcompat/internal/workflowpolicy\n", policyStep.Run) @@ -66,4 +77,22 @@ func TestPolicy_AgentStressWorkflowRunsPinnedCrossRepositoryTest(t *testing.T) { require.Equal(t, "${{ github.workspace }}/nezha", runStep.Env.AgentcompatNezhaSource) require.Equal(t, "${{ github.workspace }}/agent", runStep.Env.AgentcompatAgentSource) require.Equal(t, "go test -mod=readonly -tags=agentcompat -run '^"+agentWorkflowStressTestName+"$' -count=1 -v ./integration/agentcompat/internal/scenario", runStep.Run) + + require.Equal(t, []string{ + "Checkout Agent revision", + "Checkout pinned Nezha revision", + "Set up Go", + "Prepare Dashboard build inputs", + "Require Agent workflow policy tests", + "Require named stress test", + "Run PR-full agent compatibility stress", + }, stepNames(stressJob.Steps)) +} + +func stepNames(steps []qualityStep) []string { + names := make([]string, len(steps)) + for index, step := range steps { + names[index] = step.Name + } + return names }