This fixes cache propagation delay issues with Blacksmith's distributed cache.
The previous implementation used separate save/restore actions with
fail-on-cache-miss: true, which failed when the cache wasn't immediately
available after being saved by the Prepare job.
The new implementation uses actions/cache@v4 (combined save/restore)
with a fallback to do the checkout if cache miss, matching the pattern
used by cache-build and cache-db which don't have this issue.
Changes:
- Refactored cache-checkout action to use actions/cache@v4
- Added fallback checkout step when cache miss occurs
- Removed mode input (no longer needed)
- Updated all workflows to use the simplified cache-checkout action
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-01-10 19:26:28 +00:00
Keith WilliamsGitHubDevin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* feat: implement git checkout caching to speed up CI workflows
- Create cache-checkout action to save/restore git working directory
- Update prepare job in pr.yml to cache checkout after dangerous-git-checkout
- Update all downstream workflows to restore from cache instead of checkout
- Pass commit-sha to all workflow calls for cache key consistency
This reduces the number of full git checkouts from 20+ per workflow run to just 1,
significantly improving CI performance especially for large repos.
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* refactor: use actions/cache/restore directly instead of custom action
Remove sparse-checkout and use actions/cache/restore@v4 directly in all
downstream workflows. This eliminates the need for any git fetch operation
before restoring from cache, making the optimization more effective.
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* refactor: use github.event.pull_request.head.sha for cache key
- Remove commit-sha input from all downstream workflows
- Update cache-checkout action to use github.event.pull_request.head.sha directly
- Remove commit-sha output from prepare job
- Remove commit-sha from all workflow calls in pr.yml
- Keep sparse-checkout of .github to access the cache-checkout action
This eliminates the need to pass commit-sha around while still using
a reusable action for the cache restore logic.
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* fix: update cache key to include branch name and add cache cleanup
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* fix: use github.head_ref and github.sha for cache key
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* fix: add prefix delete before saving cache to clear previous caches
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* perf: add sparse-checkout to exclude example-apps and mp4 files
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* fix: restore get_sha step and commit-sha output that was accidentally removed
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* fix: add trailing dash to cache key prefix to prevent accidental deletion of other branches' caches
The prefix-based cache deletion was using 'git-checkout-{branch}' which would
accidentally match and delete caches for branches with similar prefixes.
For example, branch 'feature' would delete caches for 'feature-2', 'feature-new', etc.
Adding a trailing '-' ensures exact branch matching:
- 'git-checkout-feature-' matches 'git-checkout-feature-abc123' (intended)
- 'git-checkout-feature-' does NOT match 'git-checkout-feature-2-def456' (correct)
Fixes both the cache-checkout action and the PR close cleanup workflow.
Co-Authored-By: unknown <>
---------
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-01-10 21:46:21 +09:00
Keith WilliamsGitHubDevin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* refactor: detach yarn prisma generate from yarn-install action
Co-Authored-By: keith@cal.com <keithwillcode@gmail.com>
* fix: add run-prisma-generate input for backward compatibility
The yarn-install action now has a run-prisma-generate input that defaults
to true for backward compatibility. This ensures CI works correctly since
workflow files are pulled from the base branch (main) while actions are
pulled from the PR branch.
Workflows that have explicit yarn prisma generate steps now set
run-prisma-generate: false to avoid running it twice after merge.
Co-Authored-By: keith@cal.com <keithwillcode@gmail.com>
* refactor: completely remove prisma generate from yarn-install action
Remove all prisma-related code from the yarn-install action:
- Remove the run-prisma-generate input parameter
- Remove the Generate Prisma client step
Remove explicit yarn prisma generate steps from all workflow files.
Prisma generation is now handled by the postinstall script in package.json
which runs 'turbo run post-install' after yarn install. This triggers
@calcom/prisma#post-install which runs 'prisma generate && prisma format'.
This makes the yarn-install action have no knowledge of Prisma at all,
as requested.
Co-Authored-By: keith@cal.com <keithwillcode@gmail.com>
* fix: add generic post-install step to ensure generated files are up-to-date
When all caches are hit, yarn install completes quickly without running
the postinstall script. This means generated files (like Prisma types)
may not be created.
Add a generic 'turbo run post-install' step that runs after yarn install
to ensure all post-install tasks complete regardless of cache state.
This keeps the action from having Prisma-specific knowledge while
ensuring the post-install pipeline runs.
Co-Authored-By: keith@cal.com <keithwillcode@gmail.com>
* refactor: remove post-install step from yarn-install action
Remove the turbo run post-install step as requested. The yarn-install
action now only handles yarn install with caching, with no knowledge
of post-install tasks or Prisma generation.
Let CI show what fails without explicit post-install handling.
Co-Authored-By: keith@cal.com <keithwillcode@gmail.com>
* Add back Prisma schema loaded from schema.prisma
✔ Generated Prisma Client (6.16.1) to ./generated/prisma in 442ms
✔ Generated Zod Prisma Types to ./zod in 1.43s
✔ Generated Kysely types (2.2.0) to ./../kysely in 271ms
✔ Generated Prisma Enum Generator to ./enums/index.ts in 176ms where needed
* Adding Prisma schema loaded from schema.prisma
✔ Generated Prisma Client (6.16.1) to ./generated/prisma in 451ms
✔ Generated Zod Prisma Types to ./zod in 1.40s
✔ Generated Kysely types (2.2.0) to ./../kysely in 271ms
✔ Generated Prisma Enum Generator to ./enums/index.ts in 205ms where needed for E2E
---------
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-01-01 23:00:56 -03:00
Keith WilliamsGitHubDevin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* perf: optimize postgres health check in e2e workflow
Co-Authored-By: keith@cal.com <keithwillcode@gmail.com>
* perf: optimize postgres health check in all e2e workflows
Co-Authored-By: keith@cal.com <keithwillcode@gmail.com>
---------
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2025-12-31 09:54:56 -03:00
Keith WilliamsGitHubDevin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* chore: migrate GitHub workflows from Buildjet to Blacksmith
- Replace buildjet-*vcpu-ubuntu-2204 runners with blacksmith-*vcpu-ubuntu-2204
- Replace buildjet/cache@v4 with actions/cache@v4
- Replace buildjet/setup-node@v4 with actions/setup-node@v4
- Replace buildjet/cache-delete@v1 with useblacksmith/cache-delete@v1
- Rename delete-buildjet-cache.yml to delete-blacksmith-cache.yml
Co-Authored-By: keith@cal.com <keithwillcode@gmail.com>
* chore: bump Blacksmith runners to Ubuntu 24.04
Co-Authored-By: keith@cal.com <keithwillcode@gmail.com>
* Reduce 16vcpu to 4vcpu for the API v2 E2E
* Remove 8vcpu usage
* chore: switch Blacksmith runners to ARM architecture
Co-Authored-By: keith@cal.com <keithwillcode@gmail.com>
* chore: switch Blacksmith runners back to AMD (remove -arm suffix)
Co-Authored-By: keith@cal.com <keithwillcode@gmail.com>
* fix: improve test cleanup to cover all bookings including reassignment-created ones
- Changed afterEach cleanup to find all bookings by eventTypeId instead of tracking bookingIds
- This ensures bookings created indirectly by managedEventManualReassignment are also cleaned up
- Removed problematic prefix-based deleteMany calls that could affect parallel tests
- Fixes idempotencyKey collision errors on high-parallelism CI runners
Co-Authored-By: keith@cal.com <keithwillcode@gmail.com>
* fix: improve icons screenshot test stability with deviceScaleFactor and increased threshold
Co-Authored-By: keith@cal.com <keithwillcode@gmail.com>
* fix: cap Playwright workers to 4 to match vCPU allocation on Blacksmith runners
Co-Authored-By: keith@cal.com <keithwillcode@gmail.com>
---------
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* chore: Remove unit tests from running after crowd in
* Update permissions on all workflows
* Updated pr permissions
* Added actions:write to top-level pr
* Update .github/workflows/unit-tests.yml
* Removed the linting annotation
* chore: Removing E2E test sharding
* Added back 4 shards for main E2E
* Bump build machines to use 8vCPUs
* Downgrading builds to 2 vCPUs to see time difference
* Reduced shards to 2 to see if flakes are reduced
* Increased E2E vCPUs
* Put builds back to 4 vCPUs since they need it
* Updated E2E suite to use 16 vCPUs and no sharding
* Not running in parallel just to test
* Put back the parallelism
* Get rid of themeBasis warning in test suite
* Skipping another flaky test
* 2 shards
* Update e2e.yml
* chore: Removed duplicate production build
* fix references
* Move env vars to top level of e2e
* job renaming
* Added env vars to top level of all e2e jobs
* Removed part of cache key that causes issues and is moot
* Using buildjet hardware so the caching works
* clean up
* chore: Moved e2e suite to run on pushes to main
* Update yarn.lock
* Small cleanup
* Moved production build without database to pre-release
* Added name to script
* Added changes, lint and build dependencies
* Fix bg beyond rounded border in embed
* Consider margin as well for mainElement height
* Fix loader positioning
* Give better name to embed artifacts
---------
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* Create env file workflow
* Add env-cache
* Fix env setter
* Fix
* Another fix
* Fix
* Fix
* Fixes
* FFS
* Fix
* Fix
* Fix
* Fix
* Fix
* Cache fixes
* Fixes
* Adds skipping steps
* db-cache fixes
* Test
* Cache fixes
* e2e
* Possible caching conflicts
* Running out of ideas
* Caching is hard
* One more time
* cache-build not skipping
* Fingers crossed
* a
* Test
* Pls
* Please
* LFG
* Build fix
* fix
* Whitespace!!
* Zomars/cal 884 paid events not sending the link (#7318)
* WIP
* Sends correct emails for paid bookings
* Update PaymentService.ts
* Update webhook.ts
* Update webhook.ts
* Update settings back button redirect link (#7403)
* fix(schedule): close on click #7143
* fix(EventSetupTab): validLocations length will always match validLocations length #7138
* fix(SettingsLayout): go back to right route #7379
* feat: get country code from ip geolocation (#6880)
* feat: get coutnry code from ip geolocation
Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
* fix: create new api route for fetching code
Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
* chore: replace city with country
Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
* refactor: create hook for country
Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
---------
Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
* Team Workflows (#7038)
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
* Add destination calendar name to DestinationCalendarSelector (#6701)
* Add destination calendar name
* Type fix
* Search through calendars only for destination calendar credential
* Refactor get connected calendars
* Clean up
---------
Co-authored-by: zomars <zomars@me.com>
* Update viewer.tsx (#7428)
* Fix - add team members to emails (#7207)
* On booking add team members & translation
* Add team members to round robin create
* Only update calendars on reschedule if there is a calendar reference
* Send email on reschedules
* Send team email on cancelled event
* Add team members to calendar event description
* Clean up
* Convert other emails to organizer & teams
* Type check fixes
* More type fixes
* Change organizer scheduled input to an object
* early return updateCalendarEvent
* Introduce team member type
* Fix type errors
* Put team members before attendees
* Remove lodash cloneDeep
* Update packages/core/EventManager.ts
Co-authored-by: Omar López <zomars@me.com>
* Remove booking select object
* Revert "Remove booking select object"
This reverts commit 9f121ff4ebbaec9a0643111f96c5337b930ddd5b.
* Refactor email manager (#7270)
Co-authored-by: zomars <zomars@me.com>
* Type change
* Remove conditional check for updateAllCalendarEvents
---------
Co-authored-by: zomars <zomars@me.com>
* Typefix
* Updates webhook response
* Update pr.yml
---------
Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
Co-authored-by: Esaú Morais <55207584+esau-morais@users.noreply.github.com>
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com>
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
* WIP feature/settings-username-update
* WIP username change
* WIP downgrade stripe
* stripe downgrade and prorate preview
* new UI for username premium component
* Fix server side props
* Remove migration, changed field to metadata user
* WIP for update subscriptions
* WIP intent username table
* WIP saving and updating username via hooks
* WIP saving working username sub update
* WIP, update html to work with tests
* Added stripe test for username update go to stripe
* WIP username change test
* Working test for username change
* Fix timeout for flaky test
* Review changes, remove logs
* Move input username as a self contained component
* Self review changes
* Removing unnecesary arrow function
* Removed intentUsername table and now using user metadata
* Update website
* Update turbo.json
* Update e2e.yml
* Update yarn.lock
* Fixes for self host username update
* Revert yarn lock from main branch
* E2E fixes
* Centralizes username check
* Improvements
* WIP separate logic between premium and save username button
* WIP refactor username premium update
* Saving WIP
* WIP redo of username check
* WIP obtain action normal, update or downgrade
* Update username change components
* Fix test for change-username self host or cal server
* Fix user type for premiumTextfield
* Using now a global unique const to know if is selfhosted, css fixes
* Remove unused import
* Using dynamic import for username textfield, prevent submit on enter
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>