From 772a55ec66d11895525463bd1d1f7b2ff8195cf1 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 25 Dec 2025 07:53:38 +0000 Subject: [PATCH 1/2] Initial plan From 83c4f7afa67818df94a650afce9e5a57fa65098c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 25 Dec 2025 08:01:53 +0000 Subject: [PATCH 2/2] Optimize CI integration test matrix to reduce bottlenecks Split three large test groups into smaller, focused groups: 1. Split "Workflow Cache & Actions" (247.4s) into 3 groups: - Workflow Cache - Workflow Actions Pin Validation (isolates slow SHA tests) - Workflow Actions & Containers 2. Split "CLI Completion & Other" (155.4s) into 5 groups: - CLI Add & List Commands - CLI Update Command - CLI Audit & Inspect - CLI Completion & Other (reduced catch-all) 3. Split "Workflow Misc Part 2" (150.8s) into 3 groups: - Workflow String & Sanitization - Workflow Runtime & Setup - Workflow Misc Part 2 (reduced catch-all) Total groups increased from 26 to 33 for better parallelization. Expected impact: ~60% reduction in longest-running groups. Co-authored-by: mnkiefer <8320933+mnkiefer@users.noreply.github.com> --- .github/workflows/ci.yml | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7a0dd1710a2..db37467fea1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -99,10 +99,19 @@ jobs: - name: "CLI Security Tools" # Group security tool compilation tests packages: "./pkg/cli" pattern: "TestCompileWithZizmor|TestCompileWithPoutine|TestCompileWithPoutineAndZizmor" + - name: "CLI Add & List Commands" + packages: "./pkg/cli" + pattern: "^TestAdd|^TestList" + - name: "CLI Update Command" + packages: "./pkg/cli" + pattern: "^TestUpdate" + - name: "CLI Audit & Inspect" + packages: "./pkg/cli" + pattern: "^TestAudit|^TestInspect" - name: "CLI Completion & Other" # Remaining catch-all (reduced from original) packages: "./pkg/cli" pattern: "" # Catch-all for tests not matched by other CLI patterns - skip_pattern: "^TestCompile[^W]|TestPoutine|TestMCPInspectPlaywright|TestMCPGateway|TestMCPAdd|TestMCPInspectGitHub|TestMCPServer|TestMCPConfig|TestLogs|TestFirewall|TestNoStopTime|TestLocalWorkflow|TestProgressFlagSignature|TestConnectHTTPMCPServer|TestCompileWorkflows_EmptyMarkdown|TestCompileWithZizmor|TestCompileWithPoutine|TestCompileWithPoutineAndZizmor" + skip_pattern: "^TestCompile[^W]|TestPoutine|TestMCPInspectPlaywright|TestMCPGateway|TestMCPAdd|TestMCPInspectGitHub|TestMCPServer|TestMCPConfig|TestLogs|TestFirewall|TestNoStopTime|TestLocalWorkflow|TestProgressFlagSignature|TestConnectHTTPMCPServer|TestCompileWorkflows_EmptyMarkdown|TestCompileWithZizmor|TestCompileWithPoutine|TestCompileWithPoutineAndZizmor|^TestAdd|^TestList|^TestUpdate|^TestAudit|^TestInspect" - name: "Workflow Compiler" packages: "./pkg/workflow" pattern: "TestCompile|TestWorkflow|TestGenerate|TestParse" @@ -121,9 +130,15 @@ jobs: - name: "Workflow Rendering & Bundling" packages: "./pkg/workflow" pattern: "Render|Bundle|Script|WritePromptText" - - name: "Workflow Cache & Actions" + - name: "Workflow Cache" + packages: "./pkg/workflow" + pattern: "^TestCache|TestCacheDependencies|TestCacheKey|TestValidateCache" + - name: "Workflow Actions Pin Validation" packages: "./pkg/workflow" - pattern: "Cache|Action|Container" + pattern: "^TestActionPinSHAsMatchVersionTags" + - name: "Workflow Actions & Containers" + packages: "./pkg/workflow" + pattern: "^TestAction[^P]|Container" - name: "Workflow Dependabot & Security" packages: "./pkg/workflow" pattern: "Dependabot|Security|PII" @@ -150,10 +165,16 @@ jobs: - name: "Workflow Misc Part 1" # Split large catch-all into two balanced groups packages: "./pkg/workflow" pattern: "TestAgent|TestCopilot|TestCustom|TestEngine|TestModel|TestNetwork|TestOpenAI|TestProvider" + - name: "Workflow String & Sanitization" + packages: "./pkg/workflow" + pattern: "String|Sanitize|Normalize|Trim|Clean|Format" + - name: "Workflow Runtime & Setup" + packages: "./pkg/workflow" + pattern: "Runtime|Setup|Install|Download|Version|Binary" - name: "Workflow Misc Part 2" # Remaining workflow tests packages: "./pkg/workflow" pattern: "" - skip_pattern: "TestCompile|TestWorkflow|TestGenerate|TestParse|TestMCP|TestTool|TestSkill|TestPlaywright|TestFirewall|TestValidat|TestLock|TestError|TestWarning|SafeOutputs|CreatePullRequest|OutputLabel|HasSafeOutputs|GitHub|Git|PushToPullRequest|BuildFromAllowed|Render|Bundle|Script|WritePromptText|Cache|Action|Container|Dependabot|Security|PII|TestPermissions|TestPackageExtractor|TestCollectPackagesFromWorkflow|TestExpression|TestValidateExpressionSafety|TestCheckNetworkSupport|TestValidateStrictMCPNetwork|TestJobManager|TestWorkflowStep|TestScriptRegistry|TestAgent|TestCopilot|TestCustom|TestEngine|TestModel|TestNetwork|TestOpenAI|TestProvider" + skip_pattern: "TestCompile|TestWorkflow|TestGenerate|TestParse|TestMCP|TestTool|TestSkill|TestPlaywright|TestFirewall|TestValidat|TestLock|TestError|TestWarning|SafeOutputs|CreatePullRequest|OutputLabel|HasSafeOutputs|GitHub|Git|PushToPullRequest|BuildFromAllowed|Render|Bundle|Script|WritePromptText|^TestCache|TestCacheDependencies|TestCacheKey|TestValidateCache|^TestActionPinSHAsMatchVersionTags|^TestAction[^P]|Container|Dependabot|Security|PII|TestPermissions|TestPackageExtractor|TestCollectPackagesFromWorkflow|TestExpression|TestValidateExpressionSafety|TestCheckNetworkSupport|TestValidateStrictMCPNetwork|TestJobManager|TestWorkflowStep|TestScriptRegistry|TestAgent|TestCopilot|TestCustom|TestEngine|TestModel|TestNetwork|TestOpenAI|TestProvider|String|Sanitize|Normalize|Trim|Clean|Format|Runtime|Setup|Install|Download|Version|Binary" concurrency: group: ci-${{ github.ref }}-integration-${{ matrix.test-group.name }} cancel-in-progress: true