forked from TypeCellOS/TypeCell
-
Notifications
You must be signed in to change notification settings - Fork 0
161 lines (135 loc) · 5.35 KB
/
build.yaml
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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
name: build
on: ["push", "pull_request"]
jobs:
build:
name: Build
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@v3
- uses: supabase/setup-cli@v1
with:
version: latest
- name: Setup Node.js 18.x
uses: actions/setup-node@v3
with:
node-version: 18.x
# from https://github.com/supabase/supabase-action-example/
- run: supabase start -x studio,imgproxy,storage,edge-runtime,vector,realtime,storage-api
working-directory: packages/server
env:
TYPECELL_GITHUB_OAUTH_SECRET: ${{ secrets.TYPECELL_GITHUB_OAUTH_SECRET }}
TYPECELL_GOOGLE_OAUTH_SECRET: ${{ secrets.TYPECELL_GOOGLE_OAUTH_SECRET }}
- run: supabase db lint
working-directory: packages/server
env:
TYPECELL_GITHUB_OAUTH_SECRET: ${{ secrets.TYPECELL_GITHUB_OAUTH_SECRET }}
TYPECELL_GOOGLE_OAUTH_SECRET: ${{ secrets.TYPECELL_GOOGLE_OAUTH_SECRET }}
- run: supabase test db
working-directory: packages/server
env:
TYPECELL_GITHUB_OAUTH_SECRET: ${{ secrets.TYPECELL_GITHUB_OAUTH_SECRET }}
TYPECELL_GOOGLE_OAUTH_SECRET: ${{ secrets.TYPECELL_GOOGLE_OAUTH_SECRET }}
- name: Verify generated supabase types are checked in
working-directory: packages/server
run: |
supabase gen types typescript --local --schema public > ../shared/src/schema.ts
if ! git diff --ignore-space-at-eol --exit-code --quiet ../shared/src/schema.ts; then
echo "Detected uncommitted changes after build. See status below:"
git diff
exit 1
fi
env:
TYPECELL_GITHUB_OAUTH_SECRET: ${{ secrets.TYPECELL_GITHUB_OAUTH_SECRET }}
TYPECELL_GOOGLE_OAUTH_SECRET: ${{ secrets.TYPECELL_GOOGLE_OAUTH_SECRET }}
# doesn't seem to cause significant speed up, probably because it still needs to install deps
- name: cache playwright
id: playwright-cache
uses: actions/cache@v3
with:
path: ~/.cache/ms-playwright
key: pw3-${{ runner.os }}-${{ hashFiles('./package-lock.json') }}
# doesn't seem to cause significant speed up, maybe not right conf?
# - name: cache lerna
# uses: actions/cache@v2
# with:
# path: |
# node_modules
# packages/**/node_modules
# key: lerna-${{ runner.os }}-${{ hashFiles('./package-lock.json') }}
- name: Cache node modules
uses: actions/cache@v3
env:
cache-name: cache-node-modules
with:
# npm cache files are stored in `~/.npm` on Linux/macOS
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('./package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
# - name: Set correct access for docker containers (server/test/data)
# run: chmod -R a+rw test-util/server/data
# - name: Build the docker-compose stack
# run: docker-compose -f test-util/server/docker-compose.yml up -d
# - name: Check running containers
# run: docker ps -a
# - name: Check docker logs
# run: docker logs synapse
- name: NPM CI
run: npm ci
# - name: Bootstrap packages
# run: npm run bootstrap
# - name: Wait for Matrix
# run: npx wait-on http://localhost:8888/_matrix/static/
- name: Build packages
run: npm run build
env:
CI: true
- name: Build packages (vite react)
run: npm run build:react
env:
CI: true
MODE: development
- name: Lint
run: npm run lint
env:
CI: true
- name: Start HocusPocus server
run: RUNNER_TRACKING_ID="" && npm run start:server &
env:
CI: true
- name: Run Tests
run: npm run test
env:
CI: true
- name: Install Playwright
run: npx playwright install --with-deps
# if: steps.playwright-cache.outputs.cache-hit != 'true'
# env:
# PLAYWRIGHT_BROWSERS_PATH: 0 # https://github.com/microsoft/playwright/blob/main/docs/src/ci.md#caching-browsers
# Actually build and run react code and run playwright tests against that
- name: Build and run preview
# Wait on config file needed for vite dev server: https://github.com/jeffbski/wait-on/issues/78
run: npm run start:preview & npx wait-on http://localhost:4173 -c ./packages/editor/wait-on.conf.json
env:
CI: true
MODE: development
- name: Run Playwright tests (against preview)
run: npm run playwright:preview
- uses: actions/upload-artifact@v3
if: always()
with:
name: playwright-report-editor
path: packages/editor/playwright-report/
retention-days: 30
# Upload webpack-stats.json to use on relative-ci.yaml workflow
- name: Upload webpack stats artifact
uses: relative-ci/agent-upload-artifact-action@v1
with:
webpackStatsFile: ./packages/editor/dist/webpack-stats.json
# - name: Upload to coveralls
# uses: coverallsapp/github-action@master
# with:
# github-token: ${{ secrets.GITHUB_TOKEN }}