@@ -7,22 +7,74 @@ permissions:
7
7
contents : read
8
8
9
9
env :
10
- NODE_OPTIONS : --max-old-space-size=8096
10
+ # # api v2 env
11
+ ALLOWED_HOSTNAMES : ${{ vars.CI_ALLOWED_HOSTNAMES }}
12
+ API_KEY_PREFIX : ${{ secrets.CI_API_KEY_PREFIX }}
13
+ API_PORT : ${{ vars.CI_API_V2_PORT }}
14
+ CALCOM_LICENSE_KEY : ${{ secrets.CI_CALCOM_LICENSE_KEY }}
15
+ DAILY_API_KEY : ${{ secrets.CI_DAILY_API_KEY }}
16
+ DATABASE_READ_URL : ${{ secrets.CI_DATABASE_URL }}
17
+ DATABASE_WRITE_URL : ${{ secrets.CI_DATABASE_URL }}
18
+ GOOGLE_API_CREDENTIALS : ${{ secrets.CI_GOOGLE_API_CREDENTIALS }}
19
+ IS_E2E : true
20
+ NEXTAUTH_SECRET : ${{ secrets.CI_NEXTAUTH_SECRET }}
21
+ NEXTAUTH_URL : ${{ secrets.CI_NEXTAUTH_URL }}
22
+ REDIS_URL : " redis://localhost:6379"
23
+ LINGO_DOT_DEV_API_KEY : ${{ secrets.CI_LINGO_DOT_DEV_API_KEY }}
24
+ STRIPE_PRIVATE_KEY : ${{ secrets.CI_STRIPE_PRIVATE_KEY }}
25
+ STRIPE_API_KEY : ${{ secrets.CI_STRIPE_PRIVATE_KEY }}
26
+ STRIPE_CLIENT_ID : ${{ secrets.CI_STRIPE_CLIENT_ID }}
27
+ STRIPE_WEBHOOK_SECRET : ${{ secrets.CI_STRIPE_WEBHOOK_SECRET }}
28
+ SLOTS_CACHE_TTL : ${{ secrets.CI_SLOTS_CACHE_TTL }}
29
+
30
+ # # atoms e2e examples app env
11
31
ATOMS_E2E_OAUTH_CLIENT_ID : ${{ secrets.ATOMS_E2E_OAUTH_CLIENT_ID }}
12
32
ATOMS_E2E_OAUTH_CLIENT_SECRET : ${{ secrets.ATOMS_E2E_OAUTH_CLIENT_SECRET }}
13
33
ATOMS_E2E_API_URL : ${{ secrets.ATOMS_E2E_API_URL }}
14
34
ATOMS_E2E_ORG_ID : ${{ secrets.ATOMS_E2E_ORG_ID }}
15
35
ATOMS_E2E_OAUTH_CLIENT_ID_BOOKER_EMBED : ${{ secrets.ATOMS_E2E_OAUTH_CLIENT_ID_BOOKER_EMBED }}
16
36
ATOMS_E2E_APPLE_ID : ${{ secrets.ATOMS_E2E_APPLE_ID }}
17
37
ATOMS_E2E_APPLE_CONNECT_APP_SPECIFIC_PASSCODE : ${{ secrets.ATOMS_E2E_APPLE_CONNECT_APP_SPECIFIC_PASSCODE }}
38
+
39
+ # # env variables needed for both api v2 and examples app
18
40
DATABASE_DIRECT_URL : ${{ secrets.CI_DATABASE_URL }}
19
41
DATABASE_URL : ${{ secrets.CI_DATABASE_URL }}
42
+ NODE_OPTIONS : --max-old-space-size=29000
20
43
21
44
jobs :
22
45
e2e-atoms :
23
46
timeout-minutes : 15
24
47
name : E2E Atoms
25
- runs-on : buildjet-4vcpu-ubuntu-2204
48
+ runs-on : buildjet-16vcpu-ubuntu-2204
49
+ services :
50
+ postgres :
51
+ image : postgres:13
52
+ credentials :
53
+ username : ${{ secrets.DOCKERHUB_USERNAME }}
54
+ password : ${{ secrets.DOCKERHUB_TOKEN }}
55
+ env :
56
+ POSTGRES_USER : postgres
57
+ POSTGRES_PASSWORD : postgres
58
+ POSTGRES_DB : calendso
59
+ options : >-
60
+ --health-cmd pg_isready
61
+ --health-interval 10s
62
+ --health-timeout 5s
63
+ --health-retries 5
64
+ ports :
65
+ - 5432:5432
66
+ redis :
67
+ image : redis:latest
68
+ credentials :
69
+ username : ${{ secrets.DOCKERHUB_USERNAME }}
70
+ password : ${{ secrets.DOCKERHUB_TOKEN }}
71
+ ports :
72
+ - 6379:6379
73
+ options : >-
74
+ --health-cmd "redis-cli ping"
75
+ --health-interval 10s
76
+ --health-timeout 5s
77
+ --health-retries 5
26
78
steps :
27
79
- uses : docker/login-action@v3
28
80
with :
@@ -31,10 +83,28 @@ jobs:
31
83
- uses : actions/checkout@v4
32
84
- uses : ./.github/actions/dangerous-git-checkout
33
85
- uses : ./.github/actions/yarn-install
86
+ - uses : ./.github/actions/cache-db
34
87
- uses : ./.github/actions/yarn-playwright-install
88
+ - name : Start API v2
89
+ working-directory : apps/api/v2
90
+ run : |
91
+ yarn dev:no-docker &
92
+ API_PID=$!
93
+ echo "API_PID=$API_PID" >> $GITHUB_ENV
94
+
95
+ # Wait for API to be ready
96
+ echo "Waiting for API v2 to be ready on port ${{ vars.CI_API_V2_PORT }}..."
97
+ timeout 60 bash -c 'until curl -f http://localhost:${{ vars.CI_API_V2_PORT }}/health > /dev/null 2>&1; do sleep 2; done'
98
+ echo "API v2 is ready!"
35
99
- name : Run E2E Atoms Tests
36
100
working-directory : packages/platform/examples/base
37
101
run : yarn test:e2e
102
+ - name : Stop API v2
103
+ if : always()
104
+ run : |
105
+ if [ ! -z "$API_PID" ]; then
106
+ kill $API_PID || true
107
+ fi
38
108
- name : Upload Test Results
39
109
uses : actions/upload-artifact@v4
40
110
if : always()
0 commit comments