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 WilliamsGitHubunknown <>Devin 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 WilliamsGitHubkeith@cal.com <keithwillcode@gmail.com>Devin 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 WilliamsGitHubkeith@cal.com <keithwillcode@gmail.com>keith@cal.com <keithwillcode@gmail.com>Devin 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 WilliamsGitHubkeith@cal.com <keithwillcode@gmail.com>keith@cal.com <keithwillcode@gmail.com>keith@cal.com <keithwillcode@gmail.com>Devin 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
* 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>
* Add duplicate form support
* Fix duplication logic
* Change to feathericons everywhere and other fixes
* Dont allow routes for fallback route
* Fix banner
* Fix Empty Screen
* Text area + embded window fixes
* Semi fix avatar
* Fix all TS issues
* Fix tests
* Troubleshoot container + Active on count
* Support routing using query params
* Improve mobile
* NITS
* Fix padding on input
* Support multiselect in router endpoint
* Fix the issue where app goes in embed mode after viewing embed once
* Fix icons
* Add router url tests
* Add Responses download and form toggling tests
* Add required validation test
* Change Icons everywhere
* App typeform app
* Improvements in cli
* Starting to move event types settings to tabs
* Begin migration to single page form
* Single page tabs
* Limits Page
* Advanced tab
* Add RHF to dependancies
* Add typeform how-to-use page
* Add typeform how-to-use page and screenshots
* Most of advanced tab
* Solved RHF mismtach
* Build fixes
* RHF conditionals fixes
* Improved legibility
* Fix TS error
* Add missing image
* Update CliApp.tsx
* Major refactor/organisation into optional V2 UI
* Portal EditLocationModal
* Fix dialoug form
* Update imports
* Auto Animate + custom inputs WIP
* Custom Inputs
* WIP Apps
* Fixing stories imports
* Stripe app
* Remove duplicate dialog
* Remove duplicate dialog
* Major locations cleanup, 10s of bug fixes and app-store improvements
* Fix missing pieces
* More fixes
* Fix embed URL
* Fix app toggles + number of active apps
* Fix container padding on disabledBorder prop
* Removes strict
* more fixes
* EventType Team page WIP
* Fix embed
* Use new Shell
* NIT
* Add Darkmode gray color
* V2 Shell WIP
* Fix headings on shell V2
* Fix mobile layout with V2 shell
* V2 create event type button
* Checked Team Select
* Hidden to happen on save - not on toggle
* Team Attendee Select animation
* Get form-edit page working
* Get route-builder page working
* Fix scheduling type and remove multi select label
* Fix overflow on teams url
* Get UI as per designs for form-edit
* Make route-builder upto date with design
* Add no responses banner
* Update forms list as per designs
* Button shouldnt decide where it would be positioned, users of it might have different requirements
* A single select box in a row(when no other select boxes are present) wasnt taking the correct width in comparison to when it had other select boxes
* Small missing pieces
* Revert console
* Revert api
* Fixes
* Fix Embed TS errors
* Fix TS errors
* Fix Eslint errors
* Fix TS errors for UI
* Fix ESLINT error
* Fix TS errors
* Add missing import
* Fix CLI
* Add a default placeholder
* Remove hardcoded daily:integrations
* Fix message for payment page
* Revert api and console to main
* Update README
* Fix TS errors
* Fix Lint warnings
* Fix Tests
* Streamline actions and make them easy to manage
* A much more simplified approach to implementing actions
* Fix embed
* Fix most TS errors
* Fix more TS errors
* Reduce TS errors to zero
* Fix tests
* Fix UI
* Fix UI
* Self review fixes
* TS failures caught merge issues
* Security hardening
* Use V2 Shell everywhere
* Add missing file
* Problems created by new shell fixed
* Fix Shell
* Fix Routing Form Card up and down positons
* Fix Embed and other design fixes
* Fix dropdown old event-types
* Fix type errors
* Fix allowed chek
* Fix dropdown not closing on clicking EMbed button
* Fix dropdown not closing on embed button
* Fix event-type button group layout
* Add label for switch
* Fix dropdown in mobile mode
* Remove useless comments
* Login with pro for tests
* Remove bg gray till App-Store pages are revamped
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
* Add Routing logic to Query builder
* Make a working redirect
* Make it an app
* Move pages and components to App
* Integrate all pages in the app
* Integrate prisma everywhere
* Fix Routing Link
* Add routing preview
* Fixes
* Get deplouyed on preview with ts disabled
* Fix case
* add reordering for routes
* Move away from react DnD
* Add sidebar
* Add sidebar support and select support
* Various fixes and improvements
* Ignore eslint temporarly
* Route might be falsy
* Make CalNumber support required validation
* Loader improvements
* Add SSR support
* Fix few typescript issues
* More typesafety, download csv, bug fiees
* Add seo friendly link
* Avoid seding credebtials to frontend
* Self review fixes
* Improvements in app-store
* Cahnge Form layout
* Add scaffolding for app tests
* Add playwright tests and add user check in serving data
* Add CI tests
* Add route builder test
* Styling
* Apply suggestions from code review
Co-authored-by: Agusti Fernandez Pardo <6601142+agustif@users.noreply.github.com>
* Changes as per loom feedback
* Increase time for tests
* Fix PR suggestions
* Import CSS only in the module
* Fix codacy issues
* Move the codebbase to ee and add PRO and license check
* Add Badge
* Avoid lodash import
* Fix TS error
* Fix lint errors
* Fix bug to merge conflicts resolution - me query shouldnt cause the Shell to go in loading state
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: Agusti Fernandez Pardo <6601142+agustif@users.noreply.github.com>