Skip to content

Commit 83140fc

Browse files
authored
refactor: ensure the run-cypress-test runs on vercel preview
* fix: remove complexity in meet the team test * fix: fix cypress setup in github actions * fix: set group id in paralellisation * fix: separate out install job in cypress * fix: remove spec fromcpress tests
1 parent 008a8fa commit 83140fc

File tree

2 files changed

+50
-40
lines changed

2 files changed

+50
-40
lines changed

.github/workflows/cypress-test.yml

Lines changed: 50 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -9,51 +9,30 @@ on:
99
workflow_dispatch:
1010

1111
jobs:
12-
build:
13-
name: Build
12+
wait-for-vercel-deployment:
13+
name: Wait for vercel deployment
1414
runs-on: ubuntu-24.04
1515
permissions:
16-
contents: read
17-
packages: read
16+
deployments: read
17+
statuses: read
18+
outputs:
19+
preview_url: ${{ steps.waitForVercelDeployment.outputs.url }}
1820
steps:
19-
- uses: actions/checkout@v4
20-
- name: Get yarn cache directory path
21-
id: yarn-cache-dir-path
22-
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
23-
- name: Cache node_modules
24-
uses: actions/cache@v4
25-
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
21+
- name: Wait for Vercel preview deployment to be ready
22+
uses: patrickedqvist/wait-for-vercel-preview@v1.3.2
23+
id: waitForVercelDeployment
2624
with:
27-
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
28-
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
29-
restore-keys: |
30-
${{ runner.os }}-yarn-
31-
- name: Use NodeJs
32-
uses: actions/setup-node@v4
33-
with:
34-
node-version: '22.x'
35-
36-
- name: Install dependencies
37-
run: yarn install --frozen-lockfile --non-interactive
38-
39-
- name: Run linting
40-
run: yarn lint
41-
42-
- name: Build app
43-
run: yarn build
44-
env:
45-
NEXT_PUBLIC_ROLLBAR_ENV: CI
46-
NEXT_PUBLIC_VERCEL_GIT_COMMIT_SHA: ci
47-
NEXT_PUBLIC_FIREBASE_API_KEY: ${{ secrets.NEXT_PUBLIC_FIREBASE_API_KEY }}
48-
NEXT_PUBLIC_ROLLBAR_CLIENT_TOKEN: ${{ secrets.NEXT_PUBLIC_ROLLBAR_CLIENT_TOKEN }}
49-
NEXT_PUBLIC_STORYBLOK_TOKEN: ${{ secrets.NEXT_PUBLIC_STORYBLOK_TOKEN }}
25+
token: ${{ secrets.GITHUB_TOKEN }}
26+
max_timeout: 1000
27+
check_interval: 5
5028
cypress-run:
5129
name: Cypress e2e tests
52-
needs: build
30+
needs: wait-for-vercel-deployment
5331
runs-on: ubuntu-24.04
5432
permissions:
5533
contents: read
5634
checks: write
35+
deployments: read
5736
strategy:
5837
# when one test fails, DO NOT cancel the other
5938
# containers, because this will kill Cypress processes
@@ -67,18 +46,28 @@ jobs:
6746
steps:
6847
- name: Checkout
6948
uses: actions/checkout@v4
49+
7050
- name: Use NodeJs
7151
uses: actions/setup-node@v4
7252
with:
7353
node-version: '22.x'
54+
- run: node -v
55+
56+
- name: Cypress install
57+
uses: cypress-io/github-action@v6
58+
with:
59+
# Disable running of tests within install job
60+
runTests: false
61+
7462
- name: Run cypress
7563
uses: cypress-io/github-action@v6.7.16
7664
with:
7765
browser: chrome
78-
spec: cypress/**/*.cy.tsx
66+
config-file: cypress.config.ts
7967
headed: false
8068
record: true # send results to cypress dashboard
8169
parallel: true
70+
group: ${{ github.run_id }}
8271
env:
8372
NEXT_PUBLIC_ROLLBAR_ENV: CI
8473
NEXT_PUBLIC_API_URL: ${{ secrets.NEXT_PUBLIC_API_URL }}
@@ -106,3 +95,28 @@ jobs:
10695
CYPRESS_PUBLIC_NAME: ${{secrets.CYPRESS_PUBLIC_NAME}}
10796
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
10897
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
98+
99+
- name: Run cypress after cleanup
100+
uses: cypress-io/github-action@v6.7.16
101+
with:
102+
browser: chrome
103+
config-file: cypress-after.config.ts
104+
headed: false
105+
env:
106+
NEXT_PUBLIC_ROLLBAR_ENV: CI
107+
NEXT_PUBLIC_VERCEL_GIT_COMMIT_SHA: ci
108+
NEXT_PUBLIC_API_URL: ${{ secrets.NEXT_PUBLIC_API_URL }}
109+
NEXT_PUBLIC_FIREBASE_API_KEY: ${{ secrets.NEXT_PUBLIC_FIREBASE_API_KEY }}
110+
NEXT_PUBLIC_ROLLBAR_CLIENT_TOKEN: ${{ secrets.NEXT_PUBLIC_ROLLBAR_CLIENT_TOKEN }}
111+
NEXT_PUBLIC_STORYBLOK_TOKEN: ${{ secrets.NEXT_PUBLIC_STORYBLOK_TOKEN }}
112+
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN: ${{ secrets.NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN }}
113+
NEXT_PUBLIC_FIREBASE_PROJECT_ID: ${{ secrets.NEXT_PUBLIC_FIREBASE_PROJECT_ID }}
114+
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET: ${{ secrets.NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET }}
115+
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID: ${{ secrets.NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID}}
116+
NEXT_PUBLIC_FIREBASE_APP_ID: ${{ secrets.NEXT_PUBLIC_FIREBASE_APP_ID }}
117+
NEXT_PUBLIC_GOOGLE_ANALYTICS_ID: ${{ secrets.NEXT_PUBLIC_GOOGLE_ANALYTICS_ID }}
118+
CYPRESS_PROJECT_ID: ${{ secrets.CYPRESS_PROJECT_ID }}
119+
CYPRESS_BASE_URL: ${{ needs.wait-for-vercel-deployment.outputs.preview_url }}
120+
CYPRESS_SUPER_ADMIN_EMAIL: ${{secrets.CYPRESS_SUPER_ADMIN_EMAIL}}
121+
CYPRESS_SUPER_ADMIN_PASSWORD: ${{secrets.CYPRESS_SUPER_ADMIN_PASSWORD}}
122+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

cypress/integration/tests/meet-the-team.cy.tsx

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,10 +72,6 @@ describe('Meet the team page should', () => {
7272
);
7373
cy.checkImage('leaves with fire', 'leaf_mix_fire');
7474
cy.get('h3').should('contain', 'Our therapists');
75-
cy.get('p').should(
76-
'contain',
77-
'We co-create our courses with a network of certified therapists who practice a trauma-informed and feminist approach. They are based all across the world, and speak many languages.',
78-
);
7975
});
8076
it('supporting team section', () => {
8177
cy.get('h2').should('contain', 'Supporting team');

0 commit comments

Comments
 (0)