-
Notifications
You must be signed in to change notification settings - Fork 315
142 lines (119 loc) · 3.66 KB
/
landingpage-test.yaml
File metadata and controls
142 lines (119 loc) · 3.66 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
name: Landing Page Test
on:
push:
branches:
- dev
paths:
- "landingpage/**"
- ".github/workflows/landingpage-test.yaml"
pull_request:
branches:
- dev
paths:
- "landingpage/**"
- ".github/workflows/landingpage-test.yaml"
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
lint-and-build:
runs-on: ubuntu-latest
timeout-minutes: 15
permissions:
contents: read
defaults:
run:
working-directory: landingpage
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
- name: Setup pnpm
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320
with:
version: 10
- name: Set up Node.js
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f
with:
node-version: "22"
cache: "pnpm"
cache-dependency-path: landingpage/pnpm-lock.yaml
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Run lint
run: pnpm run lint
- name: Generate .env
run: |
echo "PAYLOAD_SECRET=$(openssl rand -hex 32)" >> .env
echo 'NEXT_PUBLIC_SERVER_URL="http://localhost:3000"' >> .env
- name: Build
run: pnpm run build
env:
WRANGLER_LOCAL: "true"
test-int:
runs-on: ubuntu-latest
timeout-minutes: 20
needs: lint-and-build
permissions:
contents: read
defaults:
run:
working-directory: landingpage
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
- name: Setup pnpm
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320
with:
version: 10
- name: Set up Node.js
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f
with:
node-version: "22"
cache: "pnpm"
cache-dependency-path: landingpage/pnpm-lock.yaml
- name: Generate .env
run: |
echo "PAYLOAD_SECRET=$(openssl rand -hex 32)" >> .env
echo 'NEXT_PUBLIC_SERVER_URL="http://localhost:3000"' >> .env
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Run integration tests
run: pnpm run test:int
test-e2e:
runs-on: ubuntu-latest
timeout-minutes: 30
needs: lint-and-build
permissions:
contents: read
defaults:
run:
working-directory: landingpage
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
- name: Setup pnpm
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320
with:
version: 10
- name: Set up Node.js
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f
with:
node-version: "22"
cache: "pnpm"
cache-dependency-path: landingpage/pnpm-lock.yaml
- name: Generate .env
run: |
echo "PAYLOAD_SECRET=$(openssl rand -hex 32)" >> .env
echo 'NEXT_PUBLIC_SERVER_URL="http://localhost:3000"' >> .env
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Install Playwright browsers
run: pnpm exec playwright install --with-deps chromium
- name: Run e2e tests
run: pnpm run test:e2e
env:
CI: true
- name: Upload Playwright report
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
if: ${{ !cancelled() }}
with:
name: playwright-report
path: landingpage/playwright-report/
retention-days: 30