Skip to content

Conversation

keithwillcode
Copy link
Contributor

@keithwillcode keithwillcode commented Sep 25, 2025

What does this PR do?

This PR optimizes CI build times by running yarn install and yarn playwright install concurrently instead of sequentially. It creates a new reusable composite action that consolidates the installation logic while eliminating code duplication across E2E workflows.

Performance improvement: Instead of waiting for yarn install → yarn prisma generate → yarn playwright install sequentially, this runs yarn install → (yarn prisma generate || yarn playwright install) in parallel, reducing total installation time.

Key changes:

  • Created .github/actions/yarn-install-concurrent/action.yml - a new composite action that combines yarn and playwright installation with concurrent execution
  • Updated 5 E2E workflow files (e2e.yml, e2e-app-store.yml, e2e-embed.yml, e2e-embed-react.yml, merge-reports.yml) to use the new consolidated action
  • Maintained all existing caching strategies from both yarn-install and yarn-playwright-install actions

Requested by: @keithwillcode
Link to Devin run: https://app.devin.ai/sessions/010f7203b7df41b0824cb2d27cbff829

How should this be tested?

  • Verify E2E workflows complete successfully with the new concurrent action
  • Confirm installation time is reduced compared to sequential approach
  • Check that yarn and playwright caches are working correctly
  • Ensure yarn prisma generate and yarn playwright install --with-deps can run safely in parallel

Mandatory Tasks (DO NOT REMOVE)

  • I have self-reviewed the code (A decent size PR without self-review might be rejected).
  • I have updated the developer docs in /docs if this PR makes changes that would require a documentation change. If N/A, write N/A here and check the checkbox. N/A - internal CI optimization only
  • I confirm automated tests are in place that prove my fix is effective or that my feature works. CI checks validate the concurrent installation works correctly

Critical Review Points

⚠️ High-impact change: This affects all E2E workflows. Please verify:

  1. Caching correctness: The new action replicates caching logic from yarn-install and yarn-playwright-install. Verify cache keys and paths match exactly.

  2. Concurrent execution safety: Confirm that running yarn prisma generate and yarn playwright install --with-deps in parallel doesn't cause race conditions or dependency issues.

  3. Environment variables: Check that all required environment variables from the original actions are preserved in the new action.

  4. E2E pipeline health: Monitor that all E2E workflows continue to pass consistently with the new concurrent installation.

Checklist

  • My code follows the style guidelines of this project
  • I have commented my code, particularly in hard-to-understand areas
  • I have checked if my changes generate no new warnings
  • I have read the contributing guide

- Split yarn-install.yml into parallel jobs for yarn and playwright installation
- Update all E2E workflows to use inline concurrent installation with proper caching
- Maintains existing caching strategies for both yarn and playwright
- Should reduce CI build times by parallelizing package and browser binary downloads

The key optimization is that yarn playwright install only needs package.json to determine
the @playwright/test version, so it can run in parallel with yarn prisma generate after
yarn install completes, rather than waiting for the full sequential chain.

Co-Authored-By: keith@cal.com <keithwillcode@gmail.com>
Copy link
Contributor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR that start with 'DevinAI'.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

Copy link
Contributor

coderabbitai bot commented Sep 25, 2025

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

✨ Finishing touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch devin/1758761725-concurrent-yarn-playwright-install

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@keithwillcode keithwillcode added core area: core, team members only foundation sre labels Sep 25, 2025
- Created composite action at .github/actions/yarn-install-concurrent/action.yml
- Replaced duplicated installation logic across all E2E workflows
- Maintains concurrent execution: yarn install -> (yarn prisma generate || yarn playwright install)
- Preserves all existing caching strategies for yarn and playwright
- Improves maintainability by centralizing installation logic

Co-Authored-By: keith@cal.com <keithwillcode@gmail.com>
@pull-request-size pull-request-size bot added size/M and removed size/L labels Sep 25, 2025
Copy link

vercel bot commented Sep 25, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

2 Skipped Deployments
Project Deployment Preview Comments Updated (UTC)
cal Ignored Ignored Sep 25, 2025 1:29am
cal-eu Ignored Ignored Sep 25, 2025 1:29am

- Eliminated code duplication by reusing caching patterns from existing actions
- Maintains concurrent execution: yarn install -> (yarn prisma generate || yarn playwright install)
- Preserves all existing caching strategies for yarn and playwright
- Reduces action complexity while improving maintainability
- Added clear documentation showing which patterns come from yarn-install and yarn-playwright-install actions

Co-Authored-By: keith@cal.com <keithwillcode@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
core area: core, team members only foundation size/L sre
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant