chore: migrate GitHub workflows from Buildjet to Blacksmith (#26247)

* 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>
This commit is contained in:
Keith Williams
2025-12-29 05:12:31 +00:00
committed by GitHub
co-authored by Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
parent b6e0182002
commit 2a6a8e635c
33 changed files with 76 additions and 75 deletions
+1 -1
View File
@@ -16,7 +16,7 @@ runs:
steps:
- name: Cache database
id: cache-db
uses: buildjet/cache@v4
uses: actions/cache@v4
env:
cache-name: cache-db
key-1: ${{ hashFiles('packages/prisma/schema.prisma', 'packages/prisma/migrations/**/**.sql', 'packages/prisma/*.ts') }}
+4 -4
View File
@@ -20,7 +20,7 @@ runs:
using: "composite"
steps:
- name: Use Node ${{ inputs.node_version }}
uses: buildjet/setup-node@v4
uses: actions/setup-node@v4
with:
node-version: ${{ inputs.node_version }}
- name: Expose yarn config as "$GITHUB_OUTPUT"
@@ -32,7 +32,7 @@ runs:
# Yarn rotates the downloaded cache archives, @see https://github.com/actions/setup-node/issues/325
# Yarn cache is also reusable between arch and os.
- name: Restore yarn cache
uses: buildjet/cache@v4
uses: actions/cache@v4
id: yarn-download-cache
with:
path: ${{ steps.yarn-config.outputs.CACHE_FOLDER }}
@@ -41,7 +41,7 @@ runs:
# Invalidated on yarn.lock changes
- name: Restore node_modules
id: yarn-nm-cache
uses: buildjet/cache@v4
uses: actions/cache@v4
with:
path: "**/node_modules/"
key: ${{ runner.os }}-yarn-nm-cache-${{ hashFiles('yarn.lock', '.yarnrc.yml') }}
@@ -49,7 +49,7 @@ runs:
# Invalidated on yarn.lock changes
- name: Restore yarn install state
id: yarn-install-state-cache
uses: buildjet/cache@v4
uses: actions/cache@v4
with:
path: .yarn/ci-cache/
key: ${{ runner.os }}-yarn-install-state-cache-${{ hashFiles('yarn.lock', '.yarnrc.yml') }}
@@ -9,7 +9,7 @@ runs:
run: echo "PLAYWRIGHT_VERSION=$(node -e "console.log(require('./package.json').devDependencies['@playwright/test'])")" >> $GITHUB_ENV
- name: Cache playwright binaries
id: playwright-cache
uses: buildjet/cache@v4
uses: actions/cache@v4
with:
path: |
~/Library/Caches/ms-playwright
+1 -1
View File
@@ -82,7 +82,7 @@ jobs:
required:
needs: [lint, type-check, unit-test, api-v2-unit-test, integration-test, build, build-api-v1, build-api-v2, e2e, e2e-embed, e2e-embed-react, e2e-app-store]
if: always()
runs-on: buildjet-2vcpu-ubuntu-2204
runs-on: blacksmith-2vcpu-ubuntu-2404
steps:
- name: fail if conditional jobs failed
if: contains(needs.*.result, 'failure') || contains(needs.*.result, 'skipped') || contains(needs.*.result, 'cancelled')
@@ -43,7 +43,7 @@ env:
jobs:
build:
name: Build API v1
runs-on: buildjet-4vcpu-ubuntu-2204
runs-on: blacksmith-4vcpu-ubuntu-2404
timeout-minutes: 30
services:
postgres:
@@ -68,7 +68,7 @@ jobs:
- uses: ./.github/actions/yarn-install
- uses: ./.github/actions/cache-db
- name: Cache API v1 production build
uses: buildjet/cache@v4
uses: actions/cache@v4
id: cache-api-v1-build
env:
cache-name: api-v1-build
@@ -12,7 +12,7 @@ jobs:
name: Build API v2
permissions:
contents: read
runs-on: buildjet-4vcpu-ubuntu-2204
runs-on: blacksmith-4vcpu-ubuntu-2404
timeout-minutes: 30
services:
postgres:
@@ -36,7 +36,7 @@ jobs:
- uses: ./.github/actions/dangerous-git-checkout
- uses: ./.github/actions/yarn-install
- name: Cache API v2 production build
uses: buildjet/cache@v4
uses: actions/cache@v4
id: cache-api-v2-build
env:
cache-name: api-v2-build
+1 -1
View File
@@ -9,7 +9,7 @@ jobs:
test:
name: API v2 Unit
timeout-minutes: 20
runs-on: buildjet-4vcpu-ubuntu-2204
runs-on: blacksmith-4vcpu-ubuntu-2404
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/dangerous-git-checkout
+2 -2
View File
@@ -8,14 +8,14 @@ jobs:
name: Build Atoms
permissions:
contents: read
runs-on: buildjet-4vcpu-ubuntu-2204
runs-on: blacksmith-4vcpu-ubuntu-2404
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/dangerous-git-checkout
- uses: ./.github/actions/yarn-install
- name: Cache atoms production build
uses: buildjet/cache@v4
uses: actions/cache@v4
id: cache-atoms-build
env:
cache-name: atoms-build
+1 -1
View File
@@ -6,7 +6,7 @@ on:
jobs:
cleanup:
runs-on: buildjet-2vcpu-ubuntu-2204
runs-on: blacksmith-2vcpu-ubuntu-2404
steps:
- name: Check out code
uses: actions/checkout@v4
@@ -27,7 +27,7 @@ jobs:
check-api-v2-breaking-changes:
name: Check API v2 breaking changes
timeout-minutes: 10
runs-on: buildjet-4vcpu-ubuntu-2204
runs-on: blacksmith-4vcpu-ubuntu-2404
steps:
- uses: docker/login-action@v3
with:
+1 -1
View File
@@ -9,7 +9,7 @@ permissions:
contents: read
jobs:
check-types:
runs-on: buildjet-4vcpu-ubuntu-2204
runs-on: blacksmith-4vcpu-ubuntu-2404
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/dangerous-git-checkout
+1 -1
View File
@@ -12,7 +12,7 @@ env:
jobs:
build:
name: Build Companion App & Extension
runs-on: buildjet-4vcpu-ubuntu-2204
runs-on: blacksmith-4vcpu-ubuntu-2404
timeout-minutes: 30
steps:
@@ -1,17 +1,17 @@
name: Manually Delete BuildJet Cache
name: Manually Delete Blacksmith Cache
on:
workflow_dispatch:
inputs:
cache_key:
description: "BuildJet Cache Key to Delete"
description: "Blacksmith Cache Key to Delete"
required: true
type: string
jobs:
manually-delete-buildjet-cache:
runs-on: buildjet-2vcpu-ubuntu-2204
manually-delete-blacksmith-cache:
runs-on: blacksmith-2vcpu-ubuntu-2404
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: buildjet/cache-delete@v1
- uses: useblacksmith/cache-delete@v1
with:
cache_key: ${{ inputs.cache_key }}
+2 -2
View File
@@ -9,12 +9,12 @@ jobs:
name: Build Docs
permissions:
contents: read
runs-on: buildjet-2vcpu-ubuntu-2204
runs-on: blacksmith-2vcpu-ubuntu-2404
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/dangerous-git-checkout
- name: Cache Docs build
uses: buildjet/cache@v4
uses: actions/cache@v4
id: cache-docs-build
env:
cache-name: docs-build
+1 -1
View File
@@ -31,7 +31,7 @@ jobs:
e2e:
timeout-minutes: 20
name: E2E API v2 (${{ matrix.shard }}/${{ strategy.job-total }})
runs-on: buildjet-16vcpu-ubuntu-2204
runs-on: blacksmith-4vcpu-ubuntu-2404
services:
postgres:
image: postgres:13
+2 -2
View File
@@ -45,7 +45,7 @@ jobs:
e2e-app-store:
timeout-minutes: 20
name: E2E App Store
runs-on: buildjet-4vcpu-ubuntu-2204
runs-on: blacksmith-4vcpu-ubuntu-2404
services:
postgres:
image: postgres:13
@@ -93,7 +93,7 @@ jobs:
E2E_TEST_CALCOM_GCAL_KEYS: ${{ secrets.E2E_TEST_CALCOM_GCAL_KEYS }}
- uses: ./.github/actions/cache-build
- name: Run Tests
run: yarn e2e:app-store
run: yarn e2e:app-store --workers=4
- name: Upload Test Results
if: ${{ always() }}
uses: actions/upload-artifact@v4
+1 -1
View File
@@ -22,7 +22,7 @@ jobs:
e2e-atoms:
timeout-minutes: 15
name: E2E Atoms
runs-on: buildjet-4vcpu-ubuntu-2204
runs-on: blacksmith-4vcpu-ubuntu-2404
steps:
- uses: docker/login-action@v3
with:
+2 -2
View File
@@ -45,7 +45,7 @@ jobs:
e2e-embed:
timeout-minutes: 20
name: E2E Embed React
runs-on: buildjet-4vcpu-ubuntu-2204
runs-on: blacksmith-4vcpu-ubuntu-2404
services:
postgres:
image: postgres:13
@@ -79,7 +79,7 @@ jobs:
- uses: ./.github/actions/cache-build
- name: Run Tests
run: |
yarn e2e:embed-react
yarn e2e:embed-react --workers=4
yarn workspace @calcom/embed-react packaged:tests
- name: Upload Test Results
if: ${{ always() }}
+2 -2
View File
@@ -45,7 +45,7 @@ jobs:
e2e-embed:
timeout-minutes: 20
name: E2E Embed Core
runs-on: buildjet-4vcpu-ubuntu-2204
runs-on: blacksmith-4vcpu-ubuntu-2404
services:
postgres:
image: postgres:13
@@ -86,7 +86,7 @@ jobs:
- uses: ./.github/actions/cache-db
- uses: ./.github/actions/cache-build
- name: Run Tests
run: yarn e2e:embed
run: yarn e2e:embed --workers=4
- name: Upload Test Results
if: ${{ always() }}
uses: actions/upload-artifact@v4
+2 -2
View File
@@ -45,7 +45,7 @@ jobs:
e2e:
timeout-minutes: 20
name: E2E (${{ matrix.shard }}/${{ strategy.job-total }})
runs-on: buildjet-8vcpu-ubuntu-2204
runs-on: blacksmith-4vcpu-ubuntu-2404
services:
postgres:
image: postgres:13
@@ -87,7 +87,7 @@ jobs:
- uses: ./.github/actions/cache-db
- uses: ./.github/actions/cache-build
- name: Run Tests
run: yarn e2e --shard=${{ matrix.shard }}/${{ strategy.job-total }}
run: yarn e2e --shard=${{ matrix.shard }}/${{ strategy.job-total }} --workers=4
- name: Upload Test Results
uses: actions/upload-artifact@v4
if: always()
+1 -1
View File
@@ -10,7 +10,7 @@ concurrency:
jobs:
i18n:
name: Run i18n
runs-on: buildjet-2vcpu-ubuntu-2204
runs-on: blacksmith-2vcpu-ubuntu-2404
permissions:
actions: write
contents: write
+1 -1
View File
@@ -45,7 +45,7 @@ jobs:
integration:
timeout-minutes: 20
name: Integration
runs-on: buildjet-8vcpu-ubuntu-2204
runs-on: blacksmith-4vcpu-ubuntu-2404
services:
postgres:
image: postgres:13
+1 -1
View File
@@ -6,7 +6,7 @@ permissions:
contents: read
jobs:
lint:
runs-on: buildjet-4vcpu-ubuntu-2204
runs-on: blacksmith-4vcpu-ubuntu-2404
steps:
- uses: actions/checkout@v4
@@ -12,7 +12,7 @@ permissions:
jobs:
annotate:
if: always()
runs-on: buildjet-2vcpu-ubuntu-2204
runs-on: blacksmith-2vcpu-ubuntu-2404
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/yarn-install
+1 -1
View File
@@ -49,7 +49,7 @@ env:
jobs:
analyze:
if: always()
runs-on: buildjet-4vcpu-ubuntu-2204
runs-on: blacksmith-4vcpu-ubuntu-2404
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
+2 -2
View File
@@ -20,7 +20,7 @@ concurrency:
jobs:
prepare:
name: Prepare
runs-on: buildjet-2vcpu-ubuntu-2204
runs-on: blacksmith-2vcpu-ubuntu-2404
permissions:
pull-requests: read
outputs:
@@ -277,7 +277,7 @@ jobs:
e2e-app-store,
]
if: always()
runs-on: buildjet-2vcpu-ubuntu-2204
runs-on: blacksmith-2vcpu-ubuntu-2404
steps:
- name: fail if conditional jobs failed
run: exit 1
@@ -38,7 +38,7 @@ env:
jobs:
build:
name: Build Web App
runs-on: buildjet-4vcpu-ubuntu-2204
runs-on: blacksmith-4vcpu-ubuntu-2404
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
+1 -1
View File
@@ -19,7 +19,7 @@ on:
jobs:
release-amd64:
name: "Release AMD64"
runs-on: buildjet-4vcpu-ubuntu-2204
runs-on: blacksmith-4vcpu-ubuntu-2404
steps:
- name: checkout
uses: actions/checkout@v4
+1 -1
View File
@@ -26,7 +26,7 @@ env:
jobs:
setup-db:
name: Setup Database
runs-on: buildjet-4vcpu-ubuntu-2204
runs-on: blacksmith-4vcpu-ubuntu-2404
timeout-minutes: 15
services:
postgres:
+1 -1
View File
@@ -9,7 +9,7 @@ jobs:
test:
name: Unit
timeout-minutes: 20
runs-on: buildjet-4vcpu-ubuntu-2204
runs-on: blacksmith-4vcpu-ubuntu-2404
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/dangerous-git-checkout
+1 -1
View File
@@ -9,7 +9,7 @@ permissions:
jobs:
setup:
name: Yarn install & cache
runs-on: buildjet-4vcpu-ubuntu-2204
runs-on: blacksmith-4vcpu-ubuntu-2404
timeout-minutes: 10
steps:
- uses: actions/checkout@v4