Fix artifact naming to comply with upload-artifact@v5 requirements#8362
Fix artifact naming to comply with upload-artifact@v5 requirements#8362
Conversation
- Remove file extensions from artifact names (prompt.txt → prompt, aw_info.json → aw-info) - Use hyphens instead of underscores for consistency (safe_output.jsonl → safe-output) - Update artifact download path to account for artifact extraction directory structure - Update all tests to reflect new artifact naming conventions Fixes issue where artifact uploads were failing due to non-compliant naming with upload-artifact@v5 stricter validation. Reference: https://github.com/githubnext/gh-aw/actions/runs/20628014892/job/59241691429#step:32:1 Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
@copilot review logs and audit command for new artifact names. Make sure it is forward/backward compatible. |
…ility - Add TestArtifactNamingBackwardCompatibility to test both old and new artifact names - Add TestAuditCommandFindsNewArtifacts to verify audit command works with new names - Update existing tests to use new artifact directory names (aw-info, safe-output) - Add documentation explaining compatibility mechanism - Verify flattenSingleFileArtifacts provides seamless backward/forward compatibility Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
✅ Verified backward/forward compatibility. The How it works:
Compatibility verified:
Tests added in commit ccee7d6:
See |
|
🎬 THE END — Smoke Claude MISSION: ACCOMPLISHED! The hero saves the day! ✨ |
|
📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤 |
|
✨ The prophecy is fulfilled... Smoke Codex has completed its mystical journey. The stars align. 🌟 |
|
💀 Blimey! Smoke Copilot Safe Inputs failed and walked the plank! No treasure today, matey! ☠️ |
|
✅ Firewall validation complete... Smoke Codex Firewall confirmed network sandboxing is operational. 🛡️ |
|
📰 VERDICT: Smoke Copilot Playwright has concluded. All systems operational. This is a developing story. 🎤 |
|
🎉 Yo ho ho! Changeset Generator found the treasure and completed successfully! ⚓💰 |
|
🤖 DIAGNOSTIC COMPLETE: Smoke Copilot No Firewall STATUS: ALL_UNITS_OPERATIONAL. MISSION_SUCCESS. |
Move documentation from docs/internal/ to specs/ as requested Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
🎉 Yo ho ho! Smoke Copilot Safe Inputs found the treasure and completed successfully! ⚓💰 |
|
🤖 DIAGNOSTIC COMPLETE: Smoke Copilot No Firewall STATUS: ALL_UNITS_OPERATIONAL. MISSION_SUCCESS. |
|
📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤 |
|
✅ Firewall validation complete... Smoke Codex Firewall confirmed network sandboxing is operational. 🛡️ |
|
✨ The prophecy is fulfilled... Smoke Codex has completed its mystical journey. The stars align. 🌟 |
|
🎉 Yo ho ho! Changeset Generator found the treasure and completed successfully! ⚓💰 |
|
📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤 |
|
🎉 Yo ho ho! Smoke Copilot Safe Inputs found the treasure and completed successfully! ⚓💰 |
|
📰 VERDICT: Smoke Copilot Playwright has concluded. All systems operational. This is a developing story. 🎤 |
|
✨ The prophecy is fulfilled... Smoke Codex has completed its mystical journey. The stars align. 🌟 |
|
🤖 DIAGNOSTIC COMPLETE: Smoke Copilot No Firewall STATUS: ALL_UNITS_OPERATIONAL. MISSION_SUCCESS. |
|
🎉 Yo ho ho! Changeset Generator found the treasure and completed successfully! ⚓💰 |
|
✅ Firewall validation complete... Smoke Codex Firewall confirmed network sandboxing is operational. 🛡️ |
|
🎬 THE END — Smoke Claude MISSION: ACCOMPLISHED! The hero saves the day! ✨ |
Smoke Test ResultsLast 2 merged PRs:
Test Results:
Overall Status: PASS
|
Smoke Test ResultsLast 2 Merged PRs:
Test Results:
Overall Status: PASS (6/7 tests passed - MCP gateway optional for default toolsets) cc: @pelikhan
|
Smoke Test Results✅ Playwright MCP: Page title verified (contains "GitHub") Overall Status: FAIL (1/3 tests passed)
|
|
PRs: Fix artifact download path to match download-artifact@v4 behavior; Update artifact naming documentation to reflect upload-artifact@v5 changes
|
|
PRs: Fix artifact download path to match download-artifact@v4 behavior; Update artifact naming documentation to reflect upload-artifact@v5 changes
|
Smoke Test Results: Claude EngineLast 2 merged PRs:
Test Results:
Overall Status: PARTIAL PASS (5/6 tests passed) Note:
|
GitHub Actions
upload-artifact@v5enforces stricter artifact naming conventions. Artifact names with file extensions (e.g.,prompt.txt,agent_output.json) were causing upload failures in workflow runs.Changes
Artifact name normalization:
prompt.txt→prompt,aw_info.json→aw-infosafe_output.jsonl→safe-output,agent_output.json→agent-outputFixed download path resolution:
actions/download-artifactextracts artifacts to{download-path}/{artifact-name}/. Updated environment variable paths to account for this subdirectory structure:Updated modules:
pkg/constants/constants.go- Artifact name constantspkg/workflow/artifacts.go- Download path logicpkg/workflow/compiler_yaml_artifacts.go- Upload step generationpkg/workflow/threat_detection.go- Threat detection artifact referencespkg/workflow/safe_outputs_steps.go- Safe output artifact handlingAll 127 workflows recompiled with new artifact naming scheme.
Backward/Forward Compatibility
The
flattenSingleFileArtifacts()function inpkg/cli/logs_download.goensures seamless compatibility with both old and new artifact naming schemes:gh run downloadcreates directories named after artifacts (e.g.,aw-info/,safe-output/)logsandauditcommands always find files by their standard names at root levelCompatibility verified:
aw_info.json,safe_output.jsonl) work with existing workflow runsaw-info,safe-output) work with new workflow runslogsorauditcommand logicTests added:
TestArtifactNamingBackwardCompatibility- Verifies both old and new artifact naming schemesTestAuditCommandFindsNewArtifacts- Confirms audit command compatibility with new namesSee
specs/artifact-naming-compatibility.mdfor detailed explanation.Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.