diff --git a/.github/workflows/e2e-app-store.yml b/.github/workflows/e2e-app-store.yml deleted file mode 100644 index dcba9d40c9..0000000000 --- a/.github/workflows/e2e-app-store.yml +++ /dev/null @@ -1,81 +0,0 @@ -name: E2E App-Store Apps Tests -on: - workflow_call: - -jobs: - e2e-app-store: - timeout-minutes: 20 - name: E2E App Store (${{ matrix.shard }}/${{ strategy.job-total }}) - runs-on: buildjet-4vcpu-ubuntu-2204 - services: - postgres: - image: postgres:12.1 - env: - POSTGRES_USER: postgres - POSTGRES_DB: calendso - ports: - - 5432:5432 - mailhog: - image: mailhog/mailhog:v1.0.1 - ports: - - 8025:8025 - - 1025:1025 - strategy: - fail-fast: false - matrix: - ## There aren't many tests for AppStore. So, just start with 2 shards. Increase if needed. - shard: [1, 2] - - steps: - - uses: actions/checkout@v3 - - uses: ./.github/actions/dangerous-git-checkout - - run: echo 'NODE_OPTIONS="--max_old_space_size=4096"' >> $GITHUB_ENV - - uses: ./.github/actions/yarn-install - - uses: ./.github/actions/yarn-playwright-install - - uses: ./.github/actions/cache-db - env: - DATABASE_URL: ${{ secrets.CI_DATABASE_URL }} - E2E_TEST_CALCOM_QA_EMAIL: ${{ secrets.E2E_TEST_CALCOM_QA_EMAIL }} - E2E_TEST_CALCOM_QA_PASSWORD: ${{ secrets.E2E_TEST_CALCOM_QA_PASSWORD }} - E2E_TEST_CALCOM_QA_GCAL_CREDENTIALS: ${{ secrets.E2E_TEST_CALCOM_QA_GCAL_CREDENTIALS }} - E2E_TEST_CALCOM_GCAL_KEYS: ${{ secrets.E2E_TEST_CALCOM_GCAL_KEYS }} - - uses: ./.github/actions/cache-build - - name: Run Tests - run: yarn e2e:app-store --shard=${{ matrix.shard }}/${{ strategy.job-total }} - env: - ALLOWED_HOSTNAMES: ${{ vars.CI_ALLOWED_HOSTNAMES }} - CALENDSO_ENCRYPTION_KEY: ${{ secrets.CI_CALENDSO_ENCRYPTION_KEY }} - DATABASE_URL: ${{ secrets.CI_DATABASE_URL }} - DEPLOYSENTINEL_API_KEY: ${{ secrets.DEPLOYSENTINEL_API_KEY }} - E2E_TEST_APPLE_CALENDAR_EMAIL: ${{ secrets.E2E_TEST_APPLE_CALENDAR_EMAIL }} - E2E_TEST_APPLE_CALENDAR_PASSWORD: ${{ secrets.E2E_TEST_APPLE_CALENDAR_PASSWORD }} - E2E_TEST_CALCOM_QA_EMAIL: ${{ secrets.E2E_TEST_CALCOM_QA_EMAIL }} - E2E_TEST_CALCOM_QA_PASSWORD: ${{ secrets.E2E_TEST_CALCOM_QA_PASSWORD }} - E2E_TEST_CALCOM_QA_GCAL_CREDENTIALS: ${{ secrets.E2E_TEST_CALCOM_QA_GCAL_CREDENTIALS }} - E2E_TEST_CALCOM_GCAL_KEYS: ${{ secrets.E2E_TEST_CALCOM_GCAL_KEYS }} - E2E_TEST_MAILHOG_ENABLED: ${{ vars.E2E_TEST_MAILHOG_ENABLED }} - GOOGLE_API_CREDENTIALS: ${{ secrets.CI_GOOGLE_API_CREDENTIALS }} - GOOGLE_LOGIN_ENABLED: ${{ vars.CI_GOOGLE_LOGIN_ENABLED }} - NEXTAUTH_SECRET: ${{ secrets.CI_NEXTAUTH_SECRET }} - NEXTAUTH_URL: ${{ secrets.CI_NEXTAUTH_URL }} - NEXT_PUBLIC_IS_E2E: ${{ vars.CI_NEXT_PUBLIC_IS_E2E }} - NEXT_PUBLIC_STRIPE_PUBLIC_KEY: ${{ secrets.CI_NEXT_PUBLIC_STRIPE_PUBLIC_KEY }} - NEXT_PUBLIC_WEBAPP_URL: ${{ vars.CI_NEXT_PUBLIC_WEBAPP_URL }} - NEXT_PUBLIC_WEBSITE_URL: ${{ vars.CI_NEXT_PUBLIC_WEBSITE_URL }} - PAYMENT_FEE_FIXED: ${{ vars.CI_PAYMENT_FEE_FIXED }} - PAYMENT_FEE_PERCENTAGE: ${{ vars.CI_PAYMENT_FEE_PERCENTAGE }} - SAML_ADMINS: ${{ secrets.CI_SAML_ADMINS }} - SAML_DATABASE_URL: ${{ secrets.CI_SAML_DATABASE_URL }} - STRIPE_PRIVATE_KEY: ${{ secrets.CI_STRIPE_PRIVATE_KEY }} - STRIPE_CLIENT_ID: ${{ secrets.CI_STRIPE_CLIENT_ID }} - STRIPE_WEBHOOK_SECRET: ${{ secrets.CI_STRIPE_WEBHOOK_SECRET }} - SENDGRID_API_KEY: ${{ secrets.CI_SENDGRID_API_KEY }} - SENDGRID_EMAIL: ${{ secrets.CI_SENDGRID_EMAIL }} - TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} - TURBO_TEAM: ${{ secrets.TURBO_TEAM }} - - name: Upload Test Results - if: ${{ always() }} - uses: actions/upload-artifact@v2 - with: - name: app-store-results-${{ matrix.shard }}_${{ strategy.job-total }} - path: test-results diff --git a/.github/workflows/e2e-embed-react.yml b/.github/workflows/e2e-embed-react.yml deleted file mode 100644 index 040dec0265..0000000000 --- a/.github/workflows/e2e-embed-react.yml +++ /dev/null @@ -1,67 +0,0 @@ -name: E2E Embed React tests and booking flow (for non-embed as well) -on: - workflow_call: - -jobs: - e2e-embed: - timeout-minutes: 20 - name: E2E Embed React (${{ matrix.shard }}/${{ strategy.job-total }}) - runs-on: buildjet-4vcpu-ubuntu-2204 - services: - postgres: - image: postgres:12.1 - env: - POSTGRES_USER: postgres - POSTGRES_DB: calendso - ports: - - 5432:5432 - strategy: - fail-fast: false - matrix: - ## There aren't many tests for embed-react. So, just start with 2 shards. Increase if needed. - shard: [1, 2] - - steps: - - uses: actions/checkout@v3 - - uses: ./.github/actions/dangerous-git-checkout - - run: echo 'NODE_OPTIONS="--max_old_space_size=4096"' >> $GITHUB_ENV - - uses: ./.github/actions/yarn-install - - uses: ./.github/actions/yarn-playwright-install - - uses: ./.github/actions/cache-db - - uses: ./.github/actions/cache-build - - name: Run Tests - run: | - yarn e2e:embed-react --shard=${{ matrix.shard }}/${{ strategy.job-total }} - yarn workspace @calcom/embed-react packaged:tests - env: - ALLOWED_HOSTNAMES: ${{ vars.CI_ALLOWED_HOSTNAMES }} - CALENDSO_ENCRYPTION_KEY: ${{ secrets.CI_CALENDSO_ENCRYPTION_KEY }} - DATABASE_URL: ${{ secrets.CI_DATABASE_URL }} - DEPLOYSENTINEL_API_KEY: ${{ secrets.DEPLOYSENTINEL_API_KEY }} - E2E_TEST_APPLE_CALENDAR_EMAIL: ${{ secrets.E2E_TEST_APPLE_CALENDAR_EMAIL }} - E2E_TEST_APPLE_CALENDAR_PASSWORD: ${{ secrets.E2E_TEST_APPLE_CALENDAR_PASSWORD }} - GOOGLE_API_CREDENTIALS: ${{ secrets.CI_GOOGLE_API_CREDENTIALS }} - GOOGLE_LOGIN_ENABLED: ${{ vars.CI_GOOGLE_LOGIN_ENABLED }} - NEXTAUTH_SECRET: ${{ secrets.CI_NEXTAUTH_SECRET }} - NEXTAUTH_URL: ${{ secrets.CI_NEXTAUTH_URL }} - NEXT_PUBLIC_IS_E2E: ${{ vars.CI_NEXT_PUBLIC_IS_E2E }} - NEXT_PUBLIC_STRIPE_PUBLIC_KEY: ${{ secrets.CI_NEXT_PUBLIC_STRIPE_PUBLIC_KEY }} - NEXT_PUBLIC_WEBAPP_URL: ${{ vars.CI_NEXT_PUBLIC_WEBAPP_URL }} - NEXT_PUBLIC_WEBSITE_URL: ${{ vars.CI_NEXT_PUBLIC_WEBSITE_URL }} - PAYMENT_FEE_FIXED: ${{ vars.CI_PAYMENT_FEE_FIXED }} - PAYMENT_FEE_PERCENTAGE: ${{ vars.CI_PAYMENT_FEE_PERCENTAGE }} - SAML_ADMINS: ${{ secrets.CI_SAML_ADMINS }} - SAML_DATABASE_URL: ${{ secrets.CI_SAML_DATABASE_URL }} - STRIPE_PRIVATE_KEY: ${{ secrets.CI_STRIPE_PRIVATE_KEY }} - STRIPE_CLIENT_ID: ${{ secrets.CI_STRIPE_CLIENT_ID }} - STRIPE_WEBHOOK_SECRET: ${{ secrets.CI_STRIPE_WEBHOOK_SECRET }} - SENDGRID_API_KEY: ${{ secrets.CI_SENDGRID_API_KEY }} - SENDGRID_EMAIL: ${{ secrets.CI_SENDGRID_EMAIL }} - TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} - TURBO_TEAM: ${{ secrets.TURBO_TEAM }} - - name: Upload Test Results - if: ${{ always() }} - uses: actions/upload-artifact@v2 - with: - name: embed-react-results-${{ matrix.shard }}_${{ strategy.job-total }} - path: test-results diff --git a/.github/workflows/e2e-embed.yml b/.github/workflows/e2e-embed.yml deleted file mode 100644 index 12be6a8500..0000000000 --- a/.github/workflows/e2e-embed.yml +++ /dev/null @@ -1,71 +0,0 @@ -name: E2E Embed Core tests and booking flow (for non-embed as well) -on: - workflow_call: - -jobs: - e2e-embed: - timeout-minutes: 20 - name: E2E Embed Core (${{ matrix.shard }}/${{ strategy.job-total }}) - runs-on: buildjet-4vcpu-ubuntu-2204 - services: - postgres: - image: postgres:12.1 - env: - POSTGRES_USER: postgres - POSTGRES_DB: calendso - ports: - - 5432:5432 - mailhog: - image: mailhog/mailhog:v1.0.1 - ports: - - 8025:8025 - - 1025:1025 - strategy: - fail-fast: false - matrix: - ## There aren't many tests for embed-core. So, just start with 2 shards. Increase if needed. - shard: [1, 2] - - steps: - - uses: actions/checkout@v3 - - uses: ./.github/actions/dangerous-git-checkout - - run: echo 'NODE_OPTIONS="--max_old_space_size=4096"' >> $GITHUB_ENV - - uses: ./.github/actions/yarn-install - - uses: ./.github/actions/yarn-playwright-install - - uses: ./.github/actions/cache-db - - uses: ./.github/actions/cache-build - - name: Run Tests - run: yarn e2e:embed --shard=${{ matrix.shard }}/${{ strategy.job-total }} - env: - ALLOWED_HOSTNAMES: ${{ vars.CI_ALLOWED_HOSTNAMES }} - CALENDSO_ENCRYPTION_KEY: ${{ secrets.CI_CALENDSO_ENCRYPTION_KEY }} - DATABASE_URL: ${{ secrets.CI_DATABASE_URL }} - DEPLOYSENTINEL_API_KEY: ${{ secrets.DEPLOYSENTINEL_API_KEY }} - E2E_TEST_APPLE_CALENDAR_EMAIL: ${{ secrets.E2E_TEST_APPLE_CALENDAR_EMAIL }} - E2E_TEST_APPLE_CALENDAR_PASSWORD: ${{ secrets.E2E_TEST_APPLE_CALENDAR_PASSWORD }} - E2E_TEST_MAILHOG_ENABLED: ${{ vars.E2E_TEST_MAILHOG_ENABLED }} - GOOGLE_API_CREDENTIALS: ${{ secrets.CI_GOOGLE_API_CREDENTIALS }} - GOOGLE_LOGIN_ENABLED: ${{ vars.CI_GOOGLE_LOGIN_ENABLED }} - NEXTAUTH_SECRET: ${{ secrets.CI_NEXTAUTH_SECRET }} - NEXTAUTH_URL: ${{ secrets.CI_NEXTAUTH_URL }} - NEXT_PUBLIC_IS_E2E: ${{ vars.CI_NEXT_PUBLIC_IS_E2E }} - NEXT_PUBLIC_STRIPE_PUBLIC_KEY: ${{ secrets.CI_NEXT_PUBLIC_STRIPE_PUBLIC_KEY }} - NEXT_PUBLIC_WEBAPP_URL: ${{ vars.CI_NEXT_PUBLIC_WEBAPP_URL }} - NEXT_PUBLIC_WEBSITE_URL: ${{ vars.CI_NEXT_PUBLIC_WEBSITE_URL }} - PAYMENT_FEE_FIXED: ${{ vars.CI_PAYMENT_FEE_FIXED }} - PAYMENT_FEE_PERCENTAGE: ${{ vars.CI_PAYMENT_FEE_PERCENTAGE }} - SAML_ADMINS: ${{ secrets.CI_SAML_ADMINS }} - SAML_DATABASE_URL: ${{ secrets.CI_SAML_DATABASE_URL }} - STRIPE_PRIVATE_KEY: ${{ secrets.CI_STRIPE_PRIVATE_KEY }} - STRIPE_CLIENT_ID: ${{ secrets.CI_STRIPE_CLIENT_ID }} - STRIPE_WEBHOOK_SECRET: ${{ secrets.CI_STRIPE_WEBHOOK_SECRET }} - SENDGRID_API_KEY: ${{ secrets.CI_SENDGRID_API_KEY }} - SENDGRID_EMAIL: ${{ secrets.CI_SENDGRID_EMAIL }} - TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} - TURBO_TEAM: ${{ secrets.TURBO_TEAM }} - - name: Upload Test Results - if: ${{ always() }} - uses: actions/upload-artifact@v2 - with: - name: embed-core-results-${{ matrix.shard }}_${{ strategy.job-total }} - path: test-results diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index ce0cab4cfb..d03e3c5411 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -1,8 +1,37 @@ name: E2E tests - on: workflow_call: - +env: + ALLOWED_HOSTNAMES: ${{ vars.CI_ALLOWED_HOSTNAMES }} + CALENDSO_ENCRYPTION_KEY: ${{ secrets.CI_CALENDSO_ENCRYPTION_KEY }} + DATABASE_URL: ${{ secrets.CI_DATABASE_URL }} + DEPLOYSENTINEL_API_KEY: ${{ secrets.DEPLOYSENTINEL_API_KEY }} + E2E_TEST_APPLE_CALENDAR_EMAIL: ${{ secrets.E2E_TEST_APPLE_CALENDAR_EMAIL }} + E2E_TEST_APPLE_CALENDAR_PASSWORD: ${{ secrets.E2E_TEST_APPLE_CALENDAR_PASSWORD }} + E2E_TEST_MAILHOG_ENABLED: ${{ vars.E2E_TEST_MAILHOG_ENABLED }} + GOOGLE_API_CREDENTIALS: ${{ secrets.CI_GOOGLE_API_CREDENTIALS }} + EMAIL_SERVER_HOST: ${{ secrets.CI_EMAIL_SERVER_HOST }} + EMAIL_SERVER_PORT: ${{ secrets.CI_EMAIL_SERVER_PORT }} + EMAIL_SERVER_USER: ${{ secrets.CI_EMAIL_SERVER_USER }} + EMAIL_SERVER_PASSWORD: ${{ secrets.CI_EMAIL_SERVER_PASSWORD}} + GOOGLE_LOGIN_ENABLED: ${{ vars.CI_GOOGLE_LOGIN_ENABLED }} + NEXTAUTH_SECRET: ${{ secrets.CI_NEXTAUTH_SECRET }} + NEXTAUTH_URL: ${{ secrets.CI_NEXTAUTH_URL }} + NEXT_PUBLIC_IS_E2E: ${{ vars.CI_NEXT_PUBLIC_IS_E2E }} + NEXT_PUBLIC_STRIPE_PUBLIC_KEY: ${{ secrets.CI_NEXT_PUBLIC_STRIPE_PUBLIC_KEY }} + NEXT_PUBLIC_WEBAPP_URL: ${{ vars.CI_NEXT_PUBLIC_WEBAPP_URL }} + NEXT_PUBLIC_WEBSITE_URL: ${{ vars.CI_NEXT_PUBLIC_WEBSITE_URL }} + PAYMENT_FEE_FIXED: ${{ vars.CI_PAYMENT_FEE_FIXED }} + PAYMENT_FEE_PERCENTAGE: ${{ vars.CI_PAYMENT_FEE_PERCENTAGE }} + SAML_ADMINS: ${{ secrets.CI_SAML_ADMINS }} + SAML_DATABASE_URL: ${{ secrets.CI_SAML_DATABASE_URL }} + STRIPE_PRIVATE_KEY: ${{ secrets.CI_STRIPE_PRIVATE_KEY }} + STRIPE_CLIENT_ID: ${{ secrets.CI_STRIPE_CLIENT_ID }} + STRIPE_WEBHOOK_SECRET: ${{ secrets.CI_STRIPE_WEBHOOK_SECRET }} + SENDGRID_API_KEY: ${{ secrets.CI_SENDGRID_API_KEY }} + SENDGRID_EMAIL: ${{ secrets.CI_SENDGRID_EMAIL }} + TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} + TURBO_TEAM: ${{ secrets.TURBO_TEAM }} jobs: e2e: timeout-minutes: 20 @@ -35,37 +64,7 @@ jobs: - uses: ./.github/actions/cache-build - name: Run Tests run: yarn e2e --shard=${{ matrix.shard }}/${{ strategy.job-total }} - env: - ALLOWED_HOSTNAMES: ${{ vars.CI_ALLOWED_HOSTNAMES }} - CALENDSO_ENCRYPTION_KEY: ${{ secrets.CI_CALENDSO_ENCRYPTION_KEY }} - DATABASE_URL: ${{ secrets.CI_DATABASE_URL }} - DEPLOYSENTINEL_API_KEY: ${{ secrets.DEPLOYSENTINEL_API_KEY }} - E2E_TEST_APPLE_CALENDAR_EMAIL: ${{ secrets.E2E_TEST_APPLE_CALENDAR_EMAIL }} - E2E_TEST_APPLE_CALENDAR_PASSWORD: ${{ secrets.E2E_TEST_APPLE_CALENDAR_PASSWORD }} - E2E_TEST_MAILHOG_ENABLED: ${{ vars.E2E_TEST_MAILHOG_ENABLED }} - GOOGLE_API_CREDENTIALS: ${{ secrets.CI_GOOGLE_API_CREDENTIALS }} - EMAIL_SERVER_HOST: ${{ secrets.CI_EMAIL_SERVER_HOST }} - EMAIL_SERVER_PORT: ${{ secrets.CI_EMAIL_SERVER_PORT }} - EMAIL_SERVER_USER: ${{ secrets.CI_EMAIL_SERVER_USER }} - EMAIL_SERVER_PASSWORD: ${{ secrets.CI_EMAIL_SERVER_PASSWORD}} - GOOGLE_LOGIN_ENABLED: ${{ vars.CI_GOOGLE_LOGIN_ENABLED }} - NEXTAUTH_SECRET: ${{ secrets.CI_NEXTAUTH_SECRET }} - NEXTAUTH_URL: ${{ secrets.CI_NEXTAUTH_URL }} - NEXT_PUBLIC_IS_E2E: ${{ vars.CI_NEXT_PUBLIC_IS_E2E }} - NEXT_PUBLIC_STRIPE_PUBLIC_KEY: ${{ secrets.CI_NEXT_PUBLIC_STRIPE_PUBLIC_KEY }} - NEXT_PUBLIC_WEBAPP_URL: ${{ vars.CI_NEXT_PUBLIC_WEBAPP_URL }} - NEXT_PUBLIC_WEBSITE_URL: ${{ vars.CI_NEXT_PUBLIC_WEBSITE_URL }} - PAYMENT_FEE_FIXED: ${{ vars.CI_PAYMENT_FEE_FIXED }} - PAYMENT_FEE_PERCENTAGE: ${{ vars.CI_PAYMENT_FEE_PERCENTAGE }} - SAML_ADMINS: ${{ secrets.CI_SAML_ADMINS }} - SAML_DATABASE_URL: ${{ secrets.CI_SAML_DATABASE_URL }} - STRIPE_PRIVATE_KEY: ${{ secrets.CI_STRIPE_PRIVATE_KEY }} - STRIPE_CLIENT_ID: ${{ secrets.CI_STRIPE_CLIENT_ID }} - STRIPE_WEBHOOK_SECRET: ${{ secrets.CI_STRIPE_WEBHOOK_SECRET }} - SENDGRID_API_KEY: ${{ secrets.CI_SENDGRID_API_KEY }} - SENDGRID_EMAIL: ${{ secrets.CI_SENDGRID_EMAIL }} - TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} - TURBO_TEAM: ${{ secrets.TURBO_TEAM }} + - name: Upload Test Results if: ${{ always() }} uses: actions/upload-artifact@v2 diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml index 20749ffac2..42e42f1383 100644 --- a/.github/workflows/pre-release.yml +++ b/.github/workflows/pre-release.yml @@ -52,31 +52,13 @@ jobs: uses: ./.github/workflows/e2e.yml secrets: inherit - e2e-app-store: - name: E2E App Store tests - needs: [changes, lint, build] - uses: ./.github/workflows/e2e-app-store.yml - secrets: inherit - - e2e-embed: - name: E2E embeds tests - needs: [changes, lint, build] - uses: ./.github/workflows/e2e-embed.yml - secrets: inherit - - e2e-embed-react: - name: E2E React embeds tests - needs: [changes, lint, build] - uses: ./.github/workflows/e2e-embed-react.yml - secrets: inherit - build-without-database: name: Production build (without database) uses: ./.github/workflows/production-build-without-database.yml secrets: inherit required: - needs: [e2e, e2e-app-store, e2e-embed, e2e-embed-react, build-without-database] + needs: [e2e, build-without-database] if: always() runs-on: buildjet-4vcpu-ubuntu-2204 steps: diff --git a/package.json b/package.json index b45ec93a00..50be90bfed 100644 --- a/package.json +++ b/package.json @@ -59,8 +59,8 @@ "prisma": "yarn workspace @calcom/prisma prisma", "start": "turbo run start --scope=\"@calcom/web\"", "tdd": "vitest watch", - "e2e": "NEXT_PUBLIC_IS_E2E=1 yarn playwright test --project=@calcom/web", - "e2e:app-store": "QUICK=true yarn playwright test --project=@calcom/app-store", + "e2e": "NEXT_PUBLIC_IS_E2E=1 QUICK=true yarn playwright test --project=@calcom/web --project=@calcom/app-store --project=@calcom/embed-core --project=@calcom/embed-react", + "e2e:app-store": "yarn playwright test --project=@calcom/app-store", "e2e:embed": "QUICK=true yarn playwright test --project=@calcom/embed-core", "e2e:embed-react": "QUICK=true yarn playwright test --project=@calcom/embed-react", "test-e2e": "yarn db-seed && yarn e2e",