mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-02-02 22:37:32 +00:00
045232a99bbdbbc06ed3de4802776847ff012fbb
3 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
6fbd692370 |
fix: Split PR deployment workflow for forked vs non-forked repos (#5425)
* [fix] Consolidate Playwright workflow jobs to fix missing deployment links The issue in PR #5298 was caused by missing deployment-info artifact creation. The deploy-reports job was deploying to Cloudflare but wasn't creating the deployment-info-* artifacts that comment-tests-completed job expected to download. This change consolidates the deployment and commenting into a single job, eliminating the artifact dependency and ensuring links are always available. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor: Split PR deployment workflow for forked vs non-forked repos - Extract deployment logic to reusable script (scripts/cicd/pr-playwright-deploy-and-comment.sh) - Non-forked PRs: Use direct pull_request event in test-ui.yaml (faster) - Forked PRs: Use workflow_run in pr-playwright-deploy.yaml (handles permissions) - Add starting comment for both forked and non-forked PRs - Make Cloudflare tokens optional for starting status comments * refactor: Simplify PR deployment workflow and script - Consolidate workflow into single job with clearer structure - Reduce script from 200+ to ~140 lines - Simplify deployment retry logic and comment generation - Remove redundant checks and unnecessary complexity * fix: Add debugging and wrangler installation to deployment script - Add debug output to identify missing reports - Install wrangler if not available - Show deployment attempts and failures - Log available reports before deployment * chore: Trigger CI to test deployment workflow * fix: Fix browser artifact name mismatch in deployment script - Use dot notation (0.5x) for artifact names as Playwright creates them - Convert to dash notation (0-5x) for Cloudflare project names - Properly handle browser name display in comments * refactor: Convert deployment script to POSIX sh for better compatibility - Replace bash arrays with space-separated strings - Use while loops instead of bash-specific for syntax - Remove bash-specific string manipulation features - Replace local variables (not required in functions) - Ensure compatibility with standard /bin/sh * fix: Fix deployment script output to properly capture URLs - Redirect debug messages to stderr - Only output URL to stdout for proper capture - This fixes the missing deployment links in PR comments * fix: Add input validation to prevent command injection - Validate PR number is numeric only - Sanitize branch name at script start - Validate status parameter values - Use pre-sanitized branch throughout script - Addresses high-severity security issue from PR review * fix: Add null checks and logging to workflow condition - Add explicit null checks for head_repository and repository - Add debug logging to help diagnose workflow trigger issues - Prevents potential failures from undefined repository objects - Addresses medium-severity issue from PR review * fix: Pin wrangler to major version 4 with error handling - Pin wrangler to major version 4 (^4.0.0) for stability - Add error handling if wrangler installation fails - Return 'failed' status if installation fails - Addresses dependency management issue from PR review * perf: Implement parallel deployments to reduce CI time - Deploy all browser reports in parallel using background processes - Use temporary directory to collect deployment results - Wait for all deployments to complete before generating comment - Maintains result order for consistent output - Significantly reduces deployment time from sequential to parallel execution * fix: Use specific comment ID for updates instead of edit-last - Use GitHub API to find exact comment ID - Update specific comment by ID to avoid editing wrong comment - Prevents race conditions if user posts between finding and editing - More reliable comment updates * fix(workflows/test-ui.yaml): change condition to always run deploy job for pull requests to ensure deployment consistency * fix(workflows/test-ui.yaml): change condition to always run deploy job for pull requests to ensure deployment consistency * fix(pr-playwright-deploy-and-comment.sh): remove npx prefix from wrangler command for consistency and simplicity * fix(pr-playwright-deploy-and-comment.sh): remove npx prefix from wrangler command for consistency and simplicity * Update scripts/cicd/pr-playwright-deploy-and-comment.sh Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix(pr-playwright-deploy-and-comment.sh): improve regex for URL extraction to include valid characters and ensure correct URL format * chore(pr-playwright-deploy-and-comment.sh): move wrangler installation to the beginning of the script to avoid redundancy and improve efficiency --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> |
||
|
|
f215872e2e |
[feat] merge playwright deploy and comment workflows (#5298)
Combines pr-playwright-deploy.yaml and pr-playwright-comment.yaml into a single workflow to ensure proper dependency ordering. The comment job now waits for deployments to complete before generating comments with deployment URLs. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
c3c2681819 |
[feat] Implement pull_request_target deployment for forked PRs - solves secret access issue (#5209)
* [feat] Fix CI workflow issues for forked PRs and improve test diagnostics This commit addresses two critical blockers in the CI workflow: 1. **Cloudflare Token Access Issue**: - Added conditional deployment that skips Cloudflare Pages for forked PRs - Forked PRs now get artifact-based report access instead of live URLs - Maintains security by preventing secret access from external repos 2. **Test Startup Issues**: - Enhanced ComfyUI server startup with better diagnostics - Added server PID tracking and process status verification - Improved error messages and timeout handling Additional improvements: - Updated PR comment logic to handle both deployment scenarios - Added FORK_TESTING.md documentation for contributors - Enhanced deployment info handling for summary generation Fixes #5207 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * [feat] Implement pull_request_target deployment for forked PRs Add secure deployment solution for Playwright reports from forked PRs using pull_request_target event. Key Changes: - Add deploy-playwright-reports.yaml workflow using pull_request_target - Update test-ui.yaml to work with new deployment approach - Add comprehensive security documentation Security Features: - No untrusted code execution (artifacts only) - Follows GitHub security best practices - Maintains full secret access for deployment - Clear audit trail and logging Fixes #5207 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * [feat] Implement cost-optimized deployment with webhook triggers Replace expensive polling mechanism with repository_dispatch webhooks to reduce GitHub Actions costs by 85%. Key improvements: - Remove 30-minute polling wait in deploy-playwright-reports.yaml - Add repository_dispatch trigger for instant deployment activation - Implement concurrency controls to prevent redundant deployments - Add webhook trigger from test completion in test-ui.yaml - Maintain security and forked PR support Cost benefits: - Eliminates 4 Ubuntu runners waiting up to 30min each - Reduces API calls from 240+ to 1 per PR - Event-driven architecture for better reliability - No timeout risks or polling overhead 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * [cleanup] Simplify PR testing approach per review feedback - Revert enhanced ComfyUI server startup logging - Remove complex fork handling and webhook triggers - Simplify Cloudflare deployment to original approach - Remove FORK_TESTING.md and PULL_REQUEST_TARGET_DEPLOYMENT.md files - Remove deploy-playwright-reports.yaml workflow - Documentation moved to PR comments for better visibility 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * [feat] Implement workflow_run architecture for CI comment/deploy separation Restructures CI workflows to use workflow_run triggers, improving forked PR support and simplifying core testing workflows. - pr-playwright-comment.yaml - Comments Playwright test results after Tests CI completion - pr-storybook-comment.yaml - Comments Storybook build status after Chromatic completion - pr-playwright-deploy.yaml - Deploys Playwright reports with secret access after Tests CI completion - chromatic.yaml - Removed all commenting logic, focused on Chromatic testing only - test-ui.yaml - Removed deployment, commenting, and comment-summary job; focused on Playwright testing only - ✅ Better forked PR support - workflow_run has access to secrets for deployment - ✅ Cleaner separation of concerns - testing vs commenting/deployment - ✅ Reduced complexity in core testing workflows - ✅ Improved reliability for external contributors 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * [feat] Implement workflow_run for both start and completion events - Updated pr-playwright-comment.yaml to trigger on both 'requested' and 'completed' events - Updated pr-storybook-comment.yaml to trigger on both 'requested' and 'completed' events - Added conditional logic to post different messages for workflow start vs completion - Added "Tests are starting..." message when workflows begin - Added "Build is starting..." message for Storybook builds - Maintained existing completion logic with full test results and reports This allows users to see immediate feedback when their workflows start running, improving the user experience by providing real-time status updates. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * [cleanup] Remove continue-on-error from comment workflows Comment workflow failures should be visible rather than silently ignored. This allows better debugging when PR comments fail to post. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * [feat] Add logging when no PR found in comment workflows - Add explicit logging step when steps.pr.outputs.result == 'null' - Shows branch name, workflow run ID, repository, and event details - Improves debugging when workflow_run triggers but finds no open PR - Helps identify issues with branch name matching or PR state Previously these workflows would silently skip all steps when no PR was found, making it difficult to debug why comments weren't being posted. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Update workflow formatting 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * [security] Implement security hardening for workflow_run workflows - Add URL sanitization for deployment report links to prevent malicious URL injection - Pin third-party GitHub Actions to commit hashes for supply chain security - Add repository validation checks to prevent workflow misconfiguration - Validate deployment URLs against pages.dev pattern before using in comments Following security recommendations from code review to implement defense-in-depth. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * [security] Pin only third-party actions to commit hashes Keep official GitHub actions (actions/github-script, actions/download-artifact) pinned to version tags as they are trusted first-party actions, while only pinning third-party edumserrano/find-create-or-update-comment to commit hash for supply chain security. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com> |