Skip to content

Commit 98bbfc2

Browse files
committed
chore(ci): extract e2e tests to separate workflow
skip e2e on push to canary/integrations, only run on PRs and merge queue
1 parent 9259348 commit 98bbfc2

2 files changed

Lines changed: 106 additions & 85 deletions

File tree

.github/workflows/basic.yml

Lines changed: 0 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -85,88 +85,3 @@ jobs:
8585

8686
- name: Run Tests
8787
run: pnpm run test
88-
89-
e2e-tests:
90-
name: E2E Functional Tests (${{ matrix.name }})
91-
92-
runs-on: ubuntu-latest
93-
94-
strategy:
95-
matrix:
96-
include:
97-
- name: default
98-
browsers: chromium webkit
99-
test-filter: tests/ui/e2e
100-
trailing-slash: true
101-
locale-var: TESTS_LOCALE
102-
artifact-name: playwright-report
103-
- name: TRAILING_SLASH=false
104-
browsers: chromium
105-
test-filter: tests/ui/e2e --grep @no-trailing-slash
106-
trailing-slash: false
107-
locale-var: TESTS_LOCALE
108-
artifact-name: playwright-report-no-trailing
109-
- name: alternate locale
110-
browsers: chromium
111-
test-filter: tests/ui/e2e --grep @alternate-locale
112-
trailing-slash: true
113-
locale-var: TESTS_ALTERNATE_LOCALE
114-
artifact-name: playwright-report-alternate-locale
115-
116-
steps:
117-
- name: Checkout code
118-
uses: actions/checkout@v4
119-
with:
120-
fetch-depth: 2
121-
122-
- uses: pnpm/action-setup@v3
123-
124-
- name: Use Node.js
125-
uses: actions/setup-node@v4
126-
with:
127-
node-version-file: ".nvmrc"
128-
cache: "pnpm"
129-
130-
- name: Install dependencies
131-
run: pnpm install --frozen-lockfile
132-
133-
- name: Install Playwright browsers
134-
run: pnpm exec playwright install --with-deps ${{ matrix.browsers }}
135-
working-directory: ./core
136-
137-
# - name: Build catalyst-client
138-
# run: pnpm --filter @bigcommerce/catalyst-client build
139-
140-
# - name: Build catalyst-core
141-
# run: pnpm --filter @bigcommerce/catalyst-core build
142-
143-
- name: Build catalyst
144-
run: pnpm build
145-
146-
- name: Start server
147-
run: |
148-
pnpm start &
149-
npx wait-on http://localhost:3000 --timeout 60000
150-
working-directory: ./core
151-
env:
152-
PORT: 3000
153-
AUTH_SECRET: ${{ secrets.TESTS_AUTH_SECRET }}
154-
AUTH_TRUST_HOST: ${{ vars.TESTS_AUTH_TRUST_HOST }}
155-
BIGCOMMERCE_TRUSTED_PROXY_SECRET: ${{ secrets.BIGCOMMERCE_TRUSTED_PROXY_SECRET }}
156-
TESTS_LOCALE: ${{ vars[matrix.locale-var] }}
157-
TRAILING_SLASH: ${{ matrix.trailing-slash }}
158-
DEFAULT_REVALIDATE_TARGET: ${{ matrix.name == 'default' && '1' || '' }}
159-
160-
- name: Run E2E tests
161-
run: pnpm exec playwright test ${{ matrix.test-filter }}
162-
working-directory: ./core
163-
env:
164-
PLAYWRIGHT_TEST_BASE_URL: http://localhost:3000
165-
166-
- name: Upload test results
167-
if: ${{ !cancelled() }}
168-
uses: actions/upload-artifact@v4
169-
with:
170-
name: ${{ matrix.artifact-name }}
171-
path: ./core/.tests/reports/
172-
retention-days: 3

.github/workflows/e2e.yml

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
name: E2E Tests
2+
3+
on:
4+
pull_request:
5+
types: [opened, synchronize]
6+
branches: [canary, integrations/makeswift, integrations/b2b-makeswift]
7+
merge_group:
8+
types: [checks_requested]
9+
10+
env:
11+
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
12+
TURBO_TEAM: ${{ vars.TURBO_TEAM }}
13+
TURBO_REMOTE_CACHE_SIGNATURE_KEY: ${{ secrets.TURBO_REMOTE_CACHE_SIGNATURE_KEY }}
14+
BIGCOMMERCE_STORE_HASH: ${{ vars.BIGCOMMERCE_STORE_HASH }}
15+
BIGCOMMERCE_CHANNEL_ID: ${{ vars.BIGCOMMERCE_CHANNEL_ID }}
16+
BIGCOMMERCE_CLIENT_ID: ${{ secrets.BIGCOMMERCE_CLIENT_ID }}
17+
BIGCOMMERCE_CLIENT_SECRET: ${{ secrets.BIGCOMMERCE_CLIENT_SECRET }}
18+
BIGCOMMERCE_STOREFRONT_TOKEN: ${{ secrets.BIGCOMMERCE_STOREFRONT_TOKEN }}
19+
BIGCOMMERCE_ACCESS_TOKEN: ${{ secrets.BIGCOMMERCE_ACCESS_TOKEN }}
20+
TEST_CUSTOMER_ID: ${{ vars.TEST_CUSTOMER_ID }}
21+
TEST_CUSTOMER_EMAIL: ${{ vars.TEST_CUSTOMER_EMAIL }}
22+
TEST_CUSTOMER_PASSWORD: ${{ secrets.TEST_CUSTOMER_PASSWORD }}
23+
TESTS_FALLBACK_LOCALE: ${{ vars.TESTS_FALLBACK_LOCALE }}
24+
TESTS_READ_ONLY: ${{ vars.TESTS_READ_ONLY }}
25+
DEFAULT_PRODUCT_ID: ${{ vars.DEFAULT_PRODUCT_ID }}
26+
DEFAULT_COMPLEX_PRODUCT_ID: ${{ vars.DEFAULT_COMPLEX_PRODUCT_ID }}
27+
28+
jobs:
29+
e2e-tests:
30+
name: E2E Functional Tests (${{ matrix.name }})
31+
32+
runs-on: ubuntu-latest
33+
34+
strategy:
35+
matrix:
36+
include:
37+
- name: default
38+
browsers: chromium webkit
39+
test-filter: tests/ui/e2e
40+
trailing-slash: true
41+
locale-var: TESTS_LOCALE
42+
artifact-name: playwright-report
43+
- name: TRAILING_SLASH=false
44+
browsers: chromium
45+
test-filter: tests/ui/e2e --grep @no-trailing-slash
46+
trailing-slash: false
47+
locale-var: TESTS_LOCALE
48+
artifact-name: playwright-report-no-trailing
49+
- name: alternate locale
50+
browsers: chromium
51+
test-filter: tests/ui/e2e --grep @alternate-locale
52+
trailing-slash: true
53+
locale-var: TESTS_ALTERNATE_LOCALE
54+
artifact-name: playwright-report-alternate-locale
55+
56+
steps:
57+
- name: Checkout code
58+
uses: actions/checkout@v4
59+
with:
60+
fetch-depth: 2
61+
62+
- uses: pnpm/action-setup@v3
63+
64+
- name: Use Node.js
65+
uses: actions/setup-node@v4
66+
with:
67+
node-version-file: ".nvmrc"
68+
cache: "pnpm"
69+
70+
- name: Install dependencies
71+
run: pnpm install --frozen-lockfile
72+
73+
- name: Install Playwright browsers
74+
run: pnpm exec playwright install --with-deps ${{ matrix.browsers }}
75+
working-directory: ./core
76+
77+
- name: Build catalyst
78+
run: pnpm build
79+
80+
- name: Start server
81+
run: |
82+
pnpm start &
83+
npx wait-on http://localhost:3000 --timeout 60000
84+
working-directory: ./core
85+
env:
86+
PORT: 3000
87+
AUTH_SECRET: ${{ secrets.TESTS_AUTH_SECRET }}
88+
AUTH_TRUST_HOST: ${{ vars.TESTS_AUTH_TRUST_HOST }}
89+
BIGCOMMERCE_TRUSTED_PROXY_SECRET: ${{ secrets.BIGCOMMERCE_TRUSTED_PROXY_SECRET }}
90+
TESTS_LOCALE: ${{ vars[matrix.locale-var] }}
91+
TRAILING_SLASH: ${{ matrix.trailing-slash }}
92+
DEFAULT_REVALIDATE_TARGET: ${{ matrix.name == 'default' && '1' || '' }}
93+
94+
- name: Run E2E tests
95+
run: pnpm exec playwright test ${{ matrix.test-filter }}
96+
working-directory: ./core
97+
env:
98+
PLAYWRIGHT_TEST_BASE_URL: http://localhost:3000
99+
100+
- name: Upload test results
101+
if: ${{ !cancelled() }}
102+
uses: actions/upload-artifact@v4
103+
with:
104+
name: ${{ matrix.artifact-name }}
105+
path: ./core/.tests/reports/
106+
retention-days: 3

0 commit comments

Comments
 (0)