chore: Add GitHub Actions workflow for PR validation (#2007) (9.5)#2018
Merged
Conversation
* chore: Add GitHub Actions workflow for PR validation Replaces TeamCity PR validation build with GitHub Actions workflow. Includes Maven build, test execution with Sauce Labs integration, and artifact collection for test failures. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Update validation.yml * fix: Update Sauce Connect to v5.x and configure PRO_KEY environment variable - Upgrade Sauce Connect from 4.9.2 to 5.2.0 - Update command-line arguments to use new v5 syntax (--username, --access-key, --tunnel-name) - Configure TB_LICENSE secret as PRO_KEY environment variable - Remove inline license parameter from Maven command 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * fix: Correct Sauce Connect 5.x download URL format - Fix URL to include version in path: /sauce-connect/{VERSION}/sauce-connect-{VERSION}_linux.x86_64.tar.gz - Update to latest version 5.2.3 - Fix extracted directory path (./sauce-connect/sc instead of ./sauce-connect-{VERSION}/sc) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor: Merge format-check workflow into validation workflow - Add format-check job to validation workflow to run in parallel with build-and-test - Remove separate format-check.yml workflow file - Format validation now runs as part of the main PR validation pipeline 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: Add Maven cache to format-check job - Add Maven dependency caching to format-check job - Uses same cache key as build-and-test job for artifact sharing - Prevents redundant downloads between parallel jobs 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * fix: Run format-check and build-and-test jobs sequentially - Add 'needs: format-check' to build-and-test job - Ensures proper cache sharing between jobs - Prevents cache conflicts and race conditions - Format check must pass before build and tests run 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * chore: set TB License * fix: Correct Sauce Connect binary path for version 5.x The extracted directory structure for Sauce Connect 5.x is sc-${VERSION}-linux/bin/sc, not sauce-connect/sc 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * fix: Improve Sauce Connect setup and monitoring - Use hardcoded version in path (5.2.3) instead of variable expansion - Wait for specific "Sauce Connect is up" message instead of sleeping - Fail fast if SC process dies or doesn't start within 2 minutes - Save PID for proper cleanup - Include SC logs in failure artifacts for debugging 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix version * refactor: Use official sauce-connect-action v3 instead of manual setup - Replace manual Sauce Connect download and setup with saucelabs/sauce-connect-action@v3 - Remove manual cleanup step as the action handles it automatically - Simplify tunnel ID management - Remove sc.log from artifacts as it's not generated with the action 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * use existing version, see saucelabs/sauce-connect-action#101 * Secrets * . * region * fix: Separate error screenshots into their own artifact Split test artifacts into two separate uploads: - error-screenshots: Contains only screenshot files from test failures - test-reports: Contains surefire and failsafe reports This makes it easier to find and download just the screenshots when debugging failures. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * fix: Enable localhost proxying for Sauce Connect tunnel Add --proxy-localhost flag to allow Sauce Labs to connect to localhost addresses, which is required for the test setup. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * fix: Use correct proxyLocalhost parameter for Sauce Connect Replace scArgs with the proper proxyLocalhost: allow parameter to enable localhost proxying in Sauce Connect tunnel. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * no phantomjs * fix: Exclude failsafe-summary.xml from test result parsing Change file patterns to only include TEST-*.xml files, excluding failsafe-summary.xml which is not in JUnit XML format and causes the test result publisher to fail. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * upgrade java version to 21 and remove master branch --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Zhe Sun <31067185+ZheSun88@users.noreply.github.com> Co-authored-by: Marco Collovati <marco@vaadin.com> Co-authored-by: Mikhail Shabarov <61410877+mshabarov@users.noreply.github.com>
mcollovati
approved these changes
Oct 3, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replaces TeamCity PR validation build with GitHub Actions workflow. Includes Maven build, test execution with Sauce Labs integration, and artifact collection for test failures.
🤖 Generated with Claude Code
Update validation.yml
fix: Update Sauce Connect to v5.x and configure PRO_KEY environment variable
🤖 Generated with Claude Code
🤖 Generated with Claude Code
🤖 Generated with Claude Code
🤖 Generated with Claude Code
🤖 Generated with Claude Code
chore: set TB License
fix: Correct Sauce Connect binary path for version 5.x
The extracted directory structure for Sauce Connect 5.x is sc-${VERSION}-linux/bin/sc, not sauce-connect/sc
🤖 Generated with Claude Code
🤖 Generated with Claude Code
Fix version
refactor: Use official sauce-connect-action v3 instead of manual setup
🤖 Generated with Claude Code
use existing version, see No tag with name
v3saucelabs/sauce-connect-action#101Secrets
.
region
fix: Separate error screenshots into their own artifact
Split test artifacts into two separate uploads:
This makes it easier to find and download just the screenshots when debugging failures.
🤖 Generated with Claude Code
Add --proxy-localhost flag to allow Sauce Labs to connect to localhost addresses, which is required for the test setup.
🤖 Generated with Claude Code
Replace scArgs with the proper proxyLocalhost: allow parameter to enable localhost proxying in Sauce Connect tunnel.
🤖 Generated with Claude Code
no phantomjs
fix: Exclude failsafe-summary.xml from test result parsing
Change file patterns to only include TEST-*.xml files, excluding failsafe-summary.xml which is not in JUnit XML format and causes the test result publisher to fail.
🤖 Generated with Claude Code