-
Notifications
You must be signed in to change notification settings - Fork 156
Optimize GitHub Actions frontend-ci workflow for 2-minute target #2102
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Optimize GitHub Actions frontend-ci workflow for 2-minute target #2102
Conversation
- Split frontend-ci into parallel unit and integration test jobs - Add Turbo cache configuration to reduce build times - Replace Supabase startup with PostgreSQL service container - Optimize pnpm installation with --ignore-scripts flag - Enable test caching in turbo.json Expected improvements: - Supabase optimization: 2-3 minutes saved - Turbo cache: 30-60 seconds saved - pnpm optimization: 10-15 seconds saved - Job parallelization: 30-45 seconds saved - Target: Under 2 minutes total (from 5m 3s) Co-Authored-By: [email protected] <[email protected]>
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
|
The latest updates on your projects. Learn more about Vercel for Git ↗︎
1 Skipped Deployment
|
Updates to Preview Branch (devin/1750394766-optimize-ci-performance) ↗︎
Tasks are run on every commit but only new migration files are pushed.
View logs for this Workflow Run ↗︎. |
- Install latest Supabase CLI dynamically from GitHub releases - Required for supabase:gen command to work with PostgreSQL service container - Should resolve frontend-test-integration CI failure Co-Authored-By: [email protected] <[email protected]>
- Change port mapping from 5432:5432 to 54322:5432 - Update DATABASE_URL to use localhost:54322 - Should resolve frontend-test-integration CI failure where Supabase CLI was trying to connect to port 54322 but PostgreSQL service was on 5432 Co-Authored-By: [email protected] <[email protected]>
- Add pnpm turbo run gen step to frontend-lint job before running lint - Generates CSS module .d.ts files needed for TypeScript compilation - Resolves 129 TypeScript errors about unsafe member access on CSS modules Co-Authored-By: [email protected] <[email protected]>
Optimize GitHub Actions frontend-ci workflow for 2-minute target
Summary
This PR optimizes the
frontend-ci
GitHub Actions workflow to reduce execution time from 5m 3s to under 2 minutes by addressing the main performance bottlenecks.Key Optimizations
1. Job Parallelization 🚀
frontend-ci
into separatefrontend-test-unit
andfrontend-test-integration
jobs--filter='!@liam-hq/app'
--filter='@liam-hq/app'
2. Supabase Startup Optimization ⚡
supabase/postgres:15.1.1.78
image with proper health monitoring3. Turbo Cache Implementation 📦
${{ runner.os }}-turbo-${{ hashFiles('**/pnpm-lock.yaml') }}
turbo.json
with"cache": true
4. pnpm Installation Optimization 🔧
--ignore-scripts
flag to skip unnecessary post-install scripts--frozen-lockfile
and--prefer-offline
for reliability5. Reduced Timeouts ⏱️
Expected Performance Improvements
--ignore-scripts
Files Changed
.github/workflows/frontend-ci.yml
- Main workflow optimization.github/actions/pnpm-setup/action.yml
- pnpm installation optimizationturbo.json
- Enable test cachingTesting Strategy
Link to Devin run
https://app.devin.ai/sessions/68edcdb134f64012862a47dbd35ce9b2
Requested by
[email protected]