Skip to content

Commit 936ef05

Browse files
committed
feat(action): write github action for running tests on new PR's
1 parent a54c0c3 commit 936ef05

File tree

2 files changed

+137
-1
lines changed

2 files changed

+137
-1
lines changed

.github/workflows/test-e2e.yaml

Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
name: Medusa NextJS Template Tests
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
pull_request:
8+
workflow_dispatch:
9+
10+
env:
11+
PGHOST: localhost
12+
PGPORT: 5432
13+
PGUSER: postgres
14+
PGPASSWORD: password
15+
PGDATABASE: postgres
16+
17+
TEST_POSTGRES_USER: test_medusa_user
18+
TEST_POSTGRES_PASSWORD: password
19+
TEST_POSTGRES_DATABASE: test_medusa_db
20+
TEST_POSTGRES_DATABASE_TEMPLATE: test_medusa_db_template
21+
TEST_POSTGRES_HOST: localhost
22+
TEST_POSTGREST_PORT: 5432
23+
PRODUCTION_POSTGRES_DATABASE: medusa_db
24+
CLIENT_SERVER: http://localhost:9000
25+
26+
JWT_SECRET: something
27+
COOKIE_SECRET: something
28+
29+
DATABASE_TYPE: "postgres"
30+
REDIS_URL: redis://localhost:6379
31+
DATABASE_URL: postgres://test_medusa_user:password@localhost/test_medusa_db
32+
NEXT_PUBLIC_BASE_URL: http://localhost:8000
33+
34+
jobs:
35+
e2e-test-runner:
36+
timeout-minutes: 20
37+
runs-on:
38+
- ubuntu-latest
39+
services:
40+
postgres:
41+
image: postgres:latest
42+
env:
43+
POSTGRES_USER: postgres
44+
POSTGRES_PASSWORD: password
45+
POSTGRES_DB: test
46+
ports:
47+
- 5432:5432
48+
options: >-
49+
--health-cmd pg_isready
50+
--health-interval 10s
51+
--health-timeout 5s
52+
--health-retries 5
53+
54+
meilisearch:
55+
image: getmeili/meilisearch:v1.7
56+
ports:
57+
- 7700:7700
58+
options: >-
59+
--health-cmd "curl --fail http://localhost:7700/health"
60+
--health-interval 10s
61+
--health-timeout 5s
62+
--health-retries 5
63+
64+
redis:
65+
image: redis:latest
66+
ports:
67+
- 6379:6379
68+
options: >-
69+
--health-cmd "redis-cli ping"
70+
--health-interval 10s
71+
--health-timeout 5s
72+
--health-retries 5
73+
steps:
74+
- uses: actions/checkout@v2
75+
76+
- name: Use Node.js
77+
uses: actions/setup-node@v3
78+
with:
79+
node-version: "18"
80+
81+
- name: Initialize PostgreSQL
82+
run: |
83+
echo "Initializing Databases"
84+
psql -h localhost -U postgres -d test -c "CREATE USER ${{ env.TEST_POSTGRES_USER }} WITH PASSWORD '${{ env.TEST_POSTGRES_PASSWORD }}';"
85+
psql -h localhost -U postgres -d test -c "CREATE DATABASE ${{ env.TEST_POSTGRES_DATABASE }} OWNER ${{ env.TEST_POSTGRES_USER }};"
86+
87+
- name: Install Medusa CLI
88+
run: npm install @medusajs/medusa-cli -g
89+
- name: Setup medusa backend server
90+
working-directory: ../
91+
# https://docs.medusajs.com/cli/reference#options
92+
run: |
93+
medusa new backend \
94+
-y \
95+
--skip-db \
96+
--skip-migrations \
97+
--skip-env \
98+
--db-user ${{ env.TEST_POSTGRES_USER }} \
99+
--db-pass ${{ env.TEST_POSTGRES_PASSWORD }} \
100+
--db-database ${{ env.TEST_POSTGRES_DATABASE }} \
101+
--db-host ${{ env.TEST_POSTGRES_HOST }} \
102+
--db-port ${{ env.TEST_POSTGREST_PORT }}
103+
104+
- name: Build the backend
105+
working-directory: ../backend
106+
run: yarn build:admin
107+
108+
- name: Seed data from default seed file
109+
working-directory: ../backend
110+
run: medusa seed --seed-file=data/seed.json
111+
112+
- name: Run backend server
113+
working-directory: ../backend
114+
run: medusa develop &
115+
116+
- name: Install packages
117+
run: yarn install -y
118+
119+
- name: Install playwright
120+
run: yarn playwright install --with-deps
121+
122+
- name: Copy environment
123+
run: cp .env.template .env
124+
125+
- name: Setup frontend
126+
run: yarn build
127+
128+
- name: Run Tests
129+
run: yarn test-e2e
130+
131+
- uses: actions/upload-artifact@v3
132+
if: always()
133+
with:
134+
name: playwright-report
135+
path: test-results
136+
retention-days: 30

playwright.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ export default defineConfig({
7070

7171
/* Run your local dev server before starting the tests */
7272
webServer: {
73-
command: 'npm run start',
73+
command: 'yarn start',
7474
url: process.env.NEXT_PUBLIC_BASE_URL,
7575
// reuseExistingServer: !process.env.CI,
7676
},

0 commit comments

Comments
 (0)