-
-
Notifications
You must be signed in to change notification settings - Fork 85
152 lines (121 loc) · 3.98 KB
/
client.yml
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
name: Client
on:
push:
branches: [main, master]
paths-ignore:
- 'functions/**'
- '.github/workflows/server.yml'
pull_request:
branches: [main, master]
jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 15
concurrency:
group: ${{ github.ref }}-client
cancel-in-progress: true
steps:
- uses: actions/checkout@v4
- name: Setup Bun Runtime
uses: antongolub/action-setup-bun@v1
# Using npm it is faster to cache the node modules. Using bun it seems like it is not.
#- name: Cache node_modules
# uses: actions/cache@v3
# with:
# path: |
# node_modules
# key: client-${{ runner.os }} # Key is generic as for frequent package updates
- name: Install Dependencies
run: bun install
- name: Create terms and conditions
run: bun run generate:terms
- name: Lint code
run: bun run lint
- name: Test code
run: bun run test:ci
- name: Coveralls
uses: coverallsapp/github-action@master
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Build project
run: bun run prerender
- name: Generate Sitemap
run: bun run generate:sitemap
- name: Generate Licenses File
run: bun run generate:licenses
- name: Move .well-known to root
working-directory: dist/sign-translate/browser/
run: mv assets/.well-known .well-known
- name: Zip dist
run: zip -r dist/sign-translate/browser.zip dist/sign-translate/browser/
- name: Archive dist
uses: actions/upload-artifact@v4
with:
name: build-dist
path: dist/sign-translate/browser.zip
retention-days: 1
lighthouse:
name: Lighthouse Test
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v3
- name: Download built dist artifact
uses: actions/download-artifact@v4
with:
name: build-dist
path: .
- name: Unzip dist
run: unzip browser.zip
- name: Remove original html file from before prerendering
run: rm -f dist/sign-translate/browser/index.original.html || true
- name: Run Lighthouse against a static dist dir
uses: treosh/lighthouse-ci-action@v9
with:
configPath: .github/workflows/lighthouse/lighthouserc.json
uploadArtifacts: true
temporaryPublicStorage: true
website-deploy:
name: Deploy to Firebase
if: github.ref == 'refs/heads/master'
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v3
- name: Download built dist artifact
uses: actions/download-artifact@v4
with:
name: build-dist
path: .
- name: Unzip dist
run: unzip browser.zip
# Experimentally, HTTP/2 Push degrades performance with prerendered pages
# - name: Create HTTP/2 Server Push Headers
# run: node tools/firebase-http-push.js
- name: Deploy Live Channel 🚀
uses: FirebaseExtended/action-hosting-deploy@v0
with:
repoToken: ${{ secrets.GITHUB_TOKEN }}
firebaseServiceAccount: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_SIGN_MT }}
channelId: live
projectId: sign-mt
website-deploy-dev:
name: Deploy to Firebase
if: github.event.pull_request.head.repo.full_name == github.repository
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v3
- name: Download built dist artifact
uses: actions/download-artifact@v4
with:
name: build-dist
path: .
- name: Unzip dist
run: unzip browser.zip
- name: Deploy Development Channel 🚀
uses: FirebaseExtended/action-hosting-deploy@v0
with:
repoToken: ${{ secrets.GITHUB_TOKEN }}
firebaseServiceAccount: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_SIGN_MT }}
projectId: sign-mt