* feat: Cal.diy — community-driven MIT-licensed fork of Cal.com This squashed commit contains all Cal.diy changes applied on top of calcom/cal.com main: - Rebrand Cal.com to Cal.diy across the entire codebase - Remove Enterprise Edition (EE) features, license checks, and AGPL restrictions - Switch license from AGPL-3.0 to MIT - Remove docs/ directory (migrated to Nextra at cal.diy) - Remove dead code: org tests, EE tips, platform nav, premium username, SAML/SSO, etc. - Clean up .env.example for self-hosted Cal.diy - Update Docker image references to calcom/cal.diy - Update README, CONTRIBUTING.md, and issue templates for Cal.diy community fork - Add PR welcome bot for Cal.diy contributors - Fix API v2 breaking changes oasdiff ignore entries - Replace Blacksmith CI runners with default GitHub Actions 3893 files changed, 20789 insertions(+), 411020 deletions(-) Co-Authored-By: [email protected] <[email protected]> * refactor: remove org-specific /organizations/:orgId endpoints from API v2 atoms controllers (#1701) Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * fix: revert Cal.diy Inc to Cal.com, Inc. in license files, copyright notices, and package metadata (#1702) Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * rip out org related comments in api v2 --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
108 lines
3.8 KiB
YAML
108 lines
3.8 KiB
YAML
name: Check breaking changes and run E2E
|
|
on:
|
|
workflow_call:
|
|
env:
|
|
ALLOWED_HOSTNAMES: ${{ vars.CI_ALLOWED_HOSTNAMES }}
|
|
API_KEY_PREFIX: ${{ secrets.CI_API_KEY_PREFIX }}
|
|
API_PORT: ${{ vars.CI_API_V2_PORT }}
|
|
CALCOM_LICENSE_KEY: ${{ secrets.CI_CALCOM_LICENSE_KEY }}
|
|
DAILY_API_KEY: ${{ secrets.CI_DAILY_API_KEY }}
|
|
DATABASE_URL: ${{ secrets.CI_DATABASE_URL }}
|
|
DATABASE_READ_URL: ${{ secrets.CI_DATABASE_URL }}
|
|
DATABASE_WRITE_URL: ${{ secrets.CI_DATABASE_URL }}
|
|
DATABASE_DIRECT_URL: ${{ secrets.CI_DATABASE_URL }}
|
|
GOOGLE_API_CREDENTIALS: ${{ secrets.CI_GOOGLE_API_CREDENTIALS }}
|
|
IS_E2E: true
|
|
NEXTAUTH_SECRET: ${{ secrets.CI_NEXTAUTH_SECRET }}
|
|
NEXTAUTH_URL: ${{ secrets.CI_NEXTAUTH_URL }}
|
|
NODE_OPTIONS: --max-old-space-size=29000
|
|
REDIS_URL: "redis://localhost:6379"
|
|
LINGO_DOT_DEV_API_KEY: ${{ secrets.CI_LINGO_DOT_DEV_API_KEY }}
|
|
STRIPE_PRIVATE_KEY: ${{ secrets.CI_STRIPE_PRIVATE_KEY }}
|
|
STRIPE_API_KEY: ${{ secrets.CI_STRIPE_PRIVATE_KEY }}
|
|
STRIPE_CLIENT_ID: ${{ secrets.CI_STRIPE_CLIENT_ID }}
|
|
STRIPE_WEBHOOK_SECRET: ${{ secrets.CI_STRIPE_WEBHOOK_SECRET }}
|
|
SLOTS_CACHE_TTL: ${{ secrets.CI_SLOTS_CACHE_TTL }}
|
|
NEXT_PUBLIC_VAPID_PUBLIC_KEY: ${{ secrets.NEXT_PUBLIC_VAPID_PUBLIC_KEY }}
|
|
VAPID_PRIVATE_KEY: ${{ secrets.VAPID_PRIVATE_KEY }}
|
|
JWT_SECRET: ${{ secrets.CI_JWT_SECRET }}
|
|
NODE_ENV: ${{ vars.CI_NODE_ENV }}
|
|
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
|
|
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
|
|
jobs:
|
|
e2e:
|
|
timeout-minutes: 20
|
|
name: E2E API v2 (${{ matrix.shard }}/${{ strategy.job-total }})
|
|
runs-on: ubuntu-latest
|
|
services:
|
|
postgres:
|
|
image: postgres:18
|
|
credentials:
|
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
env:
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_PASSWORD: postgres
|
|
POSTGRES_DB: calendso
|
|
options: >-
|
|
--health-cmd "pg_isready -h 127.0.0.1 -U postgres"
|
|
--health-interval 2s
|
|
--health-timeout 3s
|
|
--health-retries 15
|
|
--health-start-period 2s
|
|
ports:
|
|
- 5432:5432
|
|
redis:
|
|
image: redis:latest
|
|
credentials:
|
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
ports:
|
|
- 6379:6379
|
|
options: >-
|
|
--health-cmd "redis-cli ping"
|
|
--health-interval 10s
|
|
--health-timeout 5s
|
|
--health-retries 5
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
shard: [1, 2, 3, 4]
|
|
steps:
|
|
- uses: docker/login-action@v3
|
|
with:
|
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
sparse-checkout: .github
|
|
- uses: ./.github/actions/cache-checkout
|
|
- uses: ./.github/actions/yarn-install
|
|
- uses: ./.github/actions/cache-db
|
|
- name: Build platform packages with Turbo
|
|
run: |
|
|
yarn turbo run build \
|
|
--filter=@calcom/platform-constants \
|
|
--filter=@calcom/platform-enums \
|
|
--filter=@calcom/platform-utils \
|
|
--filter=@calcom/platform-types \
|
|
--filter=@calcom/platform-libraries \
|
|
--filter=@calcom/trpc
|
|
|
|
- name: Run Tests
|
|
working-directory: apps/api/v2
|
|
run: |
|
|
yarn test:e2e:ci --shard=${{ matrix.shard }}/${{ strategy.job-total }}
|
|
EXIT_CODE=$?
|
|
echo "yarn test:e2e:ci --shard=${{ matrix.shard }}/${{ strategy.job-total }} command exit code: $EXIT_CODE"
|
|
exit $EXIT_CODE
|
|
|
|
- name: Upload Test Results
|
|
if: ${{ always() }}
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: test-results-api-v2-shard-${{ matrix.shard }}
|
|
path: apps/api/v2/test-results
|
|
if-no-files-found: ignore
|
|
retention-days: 7
|