@jakubmazanec/carson-templates 2.3.0-unstable.3a669f4 → 2.3.0-unstable.3faef2f
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/templates/projects/remix-app/Dockerfile.ejs +10 -0
- package/templates/projects/remix-app/tsconfig.json.ejs +2 -1
- package/templates/projects/remix-app/tsconfig.typecheck.json.ejs +14 -7
- package/templates/workspace/.github/workflows/check-pull-request.yaml.ejs +34 -15
- package/templates/workspace/.github/workflows/release-pull-request.yaml.ejs +69 -20
- package/templates/workspace/.github/workflows/release.yaml.ejs +148 -16
- package/templates/workspace/turbo.json.ejs +4 -2
package/package.json
CHANGED
|
@@ -56,7 +56,17 @@ RUN npm ci --include=dev --ignore-scripts
|
|
|
56
56
|
COPY --link . .
|
|
57
57
|
|
|
58
58
|
# Build
|
|
59
|
+
<%
|
|
60
|
+
if (project.config.deployment?.dbInstance) {
|
|
61
|
+
-%>
|
|
62
|
+
RUN --mount=type=secret,id=EDGEDB_INSTANCE --mount=type=secret,id=EDGEDB_SECRET_KEY EDGEDB_INSTANCE="$(cat /run/secrets/EDGEDB_INSTANCE)" EDGEDB_SECRET_KEY="$(cat /run/secrets/EDGEDB_SECRET_KEY)" npm run build
|
|
63
|
+
<%
|
|
64
|
+
} else {
|
|
65
|
+
-%>
|
|
59
66
|
RUN npm run build
|
|
67
|
+
<%
|
|
68
|
+
}
|
|
69
|
+
-%>
|
|
60
70
|
|
|
61
71
|
# Final stage for app image
|
|
62
72
|
FROM base
|
|
@@ -12,8 +12,9 @@ let tsconfig = lodash.merge(
|
|
|
12
12
|
noEmit: true,
|
|
13
13
|
resolveJsonModule: true,
|
|
14
14
|
rootDir: '.',
|
|
15
|
+
exactOptionalPropertyTypes: project.config.deployment?.dbInstance ? false : true, // TODO: when EdgeDB client supports `exactOptionalPropertyTypes: true`, remove this line
|
|
15
16
|
},
|
|
16
|
-
include: ['./
|
|
17
|
+
include: project.config.deployment?.dbInstance ? ['./app/**/*', './dbschema/**/*', './*'] : ['./app/**/*', './*'],
|
|
17
18
|
references: getReferences(workspace, project),
|
|
18
19
|
},
|
|
19
20
|
project.config.overrides?.tsconfig ?? {},
|
|
@@ -2,6 +2,19 @@
|
|
|
2
2
|
to: 'tsconfig.typecheck.json'
|
|
3
3
|
strategy: overwrite
|
|
4
4
|
---
|
|
5
|
+
<%
|
|
6
|
+
let tsconfig = lodash.merge(
|
|
7
|
+
{
|
|
8
|
+
extends: './tsconfig.json',
|
|
9
|
+
compilerOptions: {
|
|
10
|
+
composite: false,
|
|
11
|
+
},
|
|
12
|
+
include: project.config.deployment?.dbInstance ? ['./app/**/*', './dbschema/**/*', './tests/**/*', './*'] : ['./app/**/*', './tests/**/*', './*'],
|
|
13
|
+
references: getReferences(workspace, project),
|
|
14
|
+
},
|
|
15
|
+
project.config.overrides?.tsconfig ?? {},
|
|
16
|
+
);
|
|
17
|
+
-%>
|
|
5
18
|
//
|
|
6
19
|
// DO NOT EDIT!
|
|
7
20
|
// This file was autogenerated by Carson.
|
|
@@ -10,10 +23,4 @@ strategy: overwrite
|
|
|
10
23
|
// Run `npx carson update workspace` to regenerate.
|
|
11
24
|
//
|
|
12
25
|
|
|
13
|
-
|
|
14
|
-
"extends": "./tsconfig.json",
|
|
15
|
-
"compilerOptions": {
|
|
16
|
-
"composite": false
|
|
17
|
-
},
|
|
18
|
-
"include": ["./app/**/*", "./tests/**/*", "./*"]
|
|
19
|
-
}
|
|
26
|
+
<%- JSON.stringify(tsconfig, null, 2) %>
|
|
@@ -2,6 +2,21 @@
|
|
|
2
2
|
to: '.github/workflows/check-pull-request.yaml'
|
|
3
3
|
strategy: overwrite
|
|
4
4
|
---
|
|
5
|
+
<%
|
|
6
|
+
let appsWithDb = [];
|
|
7
|
+
|
|
8
|
+
for (let project of workspace.projects) {
|
|
9
|
+
if (project.config.deployment?.dbInstance) {
|
|
10
|
+
appsWithDb.push(project.name);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
let appsWithDbFilter = appsWithDb.map((name) => `--filter=!${name}`).join(' ');
|
|
15
|
+
|
|
16
|
+
if (appsWithDbFilter) {
|
|
17
|
+
appsWithDbFilter = `-- ${appsWithDbFilter}`;
|
|
18
|
+
}
|
|
19
|
+
-%>
|
|
5
20
|
#
|
|
6
21
|
# DO NOT EDIT!
|
|
7
22
|
# This file was autogenerated by Carson.
|
|
@@ -50,23 +65,10 @@ if (workspace.projects.some((project) => project.config.deployment?.dbInstance))
|
|
|
50
65
|
-%>
|
|
51
66
|
|
|
52
67
|
- uses: edgedb/setup-edgedb@v1
|
|
53
|
-
|
|
68
|
+
with:
|
|
54
69
|
server-version: none
|
|
55
70
|
<%
|
|
56
71
|
}
|
|
57
|
-
|
|
58
|
-
for (let project of workspace.projects) {
|
|
59
|
-
if (project.config.deployment?.dbInstance) {
|
|
60
|
-
-%>
|
|
61
|
-
|
|
62
|
-
- name: Authenticate EdgeDB Cloud
|
|
63
|
-
env:
|
|
64
|
-
EDGEDB_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance.split('/')[1] ?? '').toUpperCase() %>_EDGEDB_TOKEN }}
|
|
65
|
-
run: |
|
|
66
|
-
edgedb project init --link <%- project.config.deployment?.dbInstance %>
|
|
67
|
-
<%
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
72
|
-%>
|
|
71
73
|
|
|
72
74
|
- name: Install packages
|
|
@@ -87,7 +89,24 @@ for (let project of workspace.projects) {
|
|
|
87
89
|
git config --unset core.filemode
|
|
88
90
|
|
|
89
91
|
- name: Run tests
|
|
90
|
-
run: npm test
|
|
92
|
+
run: npm test <%- appsWithDbFilter %>
|
|
93
|
+
|
|
94
|
+
<%
|
|
95
|
+
for (let project of workspace.projects) {
|
|
96
|
+
if (project.config.deployment?.dbInstance) {
|
|
97
|
+
-%>
|
|
98
|
+
|
|
99
|
+
- name: Run tests
|
|
100
|
+
run: |
|
|
101
|
+
npm run test -- --filter=<%- project.name %>
|
|
102
|
+
env:
|
|
103
|
+
EDGEDB_INSTANCE: <%- project.config.deployment.dbInstance %>
|
|
104
|
+
EDGEDB_BRANCH: ${{ github.head_ref }}
|
|
105
|
+
EDGEDB_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance.split('/')[1] ?? '').toUpperCase() %>_EDGEDB_TOKEN }}
|
|
106
|
+
<%
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
-%>
|
|
91
110
|
|
|
92
111
|
- name: Check for changes
|
|
93
112
|
run: |
|
|
@@ -2,6 +2,21 @@
|
|
|
2
2
|
to: '.github/workflows/release-pull-request.yaml'
|
|
3
3
|
strategy: overwrite
|
|
4
4
|
---
|
|
5
|
+
<%
|
|
6
|
+
let appsWithDb = [];
|
|
7
|
+
|
|
8
|
+
for (let project of workspace.projects) {
|
|
9
|
+
if (project.config.deployment?.dbInstance) {
|
|
10
|
+
appsWithDb.push(project.name);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
let appsWithDbFilter = appsWithDb.map((name) => `--filter=!${name}`).join(' ');
|
|
15
|
+
|
|
16
|
+
if (appsWithDbFilter) {
|
|
17
|
+
appsWithDbFilter = `-- ${appsWithDbFilter}`;
|
|
18
|
+
}
|
|
19
|
+
-%>
|
|
5
20
|
#
|
|
6
21
|
# DO NOT EDIT!
|
|
7
22
|
# This file was autogenerated by Carson.
|
|
@@ -47,26 +62,20 @@ jobs:
|
|
|
47
62
|
registry-url: 'https://registry.npmjs.org'
|
|
48
63
|
|
|
49
64
|
<%
|
|
50
|
-
if (workspace.projects.some((project) => project.config.deployment?.
|
|
65
|
+
if (workspace.projects.some((project) => project.config.deployment?.appName)) {
|
|
51
66
|
-%>
|
|
52
67
|
|
|
53
|
-
- uses:
|
|
54
|
-
- with:
|
|
55
|
-
server-version: none
|
|
68
|
+
- uses: superfly/flyctl-actions/setup-flyctl@master
|
|
56
69
|
<%
|
|
57
70
|
}
|
|
58
71
|
|
|
59
|
-
|
|
60
|
-
if (project.config.deployment?.dbInstance) {
|
|
72
|
+
if (workspace.projects.some((project) => project.config.deployment?.dbInstance)) {
|
|
61
73
|
-%>
|
|
62
74
|
|
|
63
|
-
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
run: |
|
|
67
|
-
edgedb project init --link <%- project.config.deployment?.dbInstance %>
|
|
75
|
+
- uses: edgedb/setup-edgedb@v1
|
|
76
|
+
with:
|
|
77
|
+
server-version: none
|
|
68
78
|
<%
|
|
69
|
-
}
|
|
70
79
|
}
|
|
71
80
|
-%>
|
|
72
81
|
|
|
@@ -88,7 +97,24 @@ for (let project of workspace.projects) {
|
|
|
88
97
|
git config --unset core.filemode
|
|
89
98
|
|
|
90
99
|
- name: Run tests
|
|
91
|
-
run: npm test
|
|
100
|
+
run: npm test <%- appsWithDbFilter %>
|
|
101
|
+
|
|
102
|
+
<%
|
|
103
|
+
for (let project of workspace.projects) {
|
|
104
|
+
if (project.config.deployment?.dbInstance) {
|
|
105
|
+
-%>
|
|
106
|
+
|
|
107
|
+
- name: Run tests
|
|
108
|
+
run: |
|
|
109
|
+
npm run test -- --filter=<%- project.name %>
|
|
110
|
+
env:
|
|
111
|
+
EDGEDB_INSTANCE: <%- project.config.deployment.dbInstance %>
|
|
112
|
+
EDGEDB_BRANCH: ${{ github.head_ref }}
|
|
113
|
+
EDGEDB_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance.split('/')[1] ?? '').toUpperCase() %>_EDGEDB_TOKEN }}
|
|
114
|
+
<%
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
-%>
|
|
92
118
|
|
|
93
119
|
- name: Check for changes
|
|
94
120
|
run: |
|
|
@@ -105,7 +131,24 @@ for (let project of workspace.projects) {
|
|
|
105
131
|
git config --unset core.filemode
|
|
106
132
|
|
|
107
133
|
- name: Build packages
|
|
108
|
-
run: npm run build
|
|
134
|
+
run: npm run build <%- appsWithDbFilter %>
|
|
135
|
+
|
|
136
|
+
<%
|
|
137
|
+
for (let project of workspace.projects) {
|
|
138
|
+
if (project.config.deployment?.dbInstance) {
|
|
139
|
+
-%>
|
|
140
|
+
|
|
141
|
+
- name: Build <%- project.name %>
|
|
142
|
+
run: |
|
|
143
|
+
npm run build -- --filter=<%- project.name %>
|
|
144
|
+
env:
|
|
145
|
+
EDGEDB_INSTANCE: <%- project.config.deployment.dbInstance %>
|
|
146
|
+
EDGEDB_BRANCH: ${{ github.head_ref }}
|
|
147
|
+
EDGEDB_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance.split('/')[1] ?? '').toUpperCase() %>_EDGEDB_TOKEN }}
|
|
148
|
+
<%
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
-%>
|
|
109
152
|
|
|
110
153
|
- name: Authenticate to npm registry
|
|
111
154
|
run: |
|
|
@@ -128,15 +171,21 @@ for (let project of workspace.projects) {
|
|
|
128
171
|
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
129
172
|
NPM_CONFIG_PROVENANCE: 'true' # must be string, not boolean
|
|
130
173
|
<%
|
|
131
|
-
|
|
174
|
+
for (let project of workspace.projects) {
|
|
175
|
+
if (project.config.deployment?.appName && project.config.deployment?.dbInstance) {
|
|
132
176
|
-%>
|
|
133
177
|
|
|
134
|
-
-
|
|
178
|
+
- name: Deploy <%- project.name %>
|
|
179
|
+
run:
|
|
180
|
+
npm run deploy --workspace <%- project.name %> -- --app <%- project.config.deployment?.appName %>-unstable --build-secret EDGEDB_INSTANCE=$EDGEDB_INSTANCE --build-secret EDGEDB_SECRET_KEY=$EDGEDB_SECRET_KEY
|
|
181
|
+
env:
|
|
182
|
+
FLY_ACCESS_TOKEN: ${{ secrets.FLY_TOKEN }}
|
|
183
|
+
FLY_API_TOKEN: ${{ secrets.FLY_TOKEN }}
|
|
184
|
+
EDGEDB_INSTANCE: <%- project.config.deployment.dbInstance %>
|
|
185
|
+
EDGEDB_BRANCH: ${{ github.head_ref }}
|
|
186
|
+
EDGEDB_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance.split('/')[1] ?? '').toUpperCase() %>_EDGEDB_TOKEN }}
|
|
135
187
|
<%
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
for (let project of workspace.projects) {
|
|
139
|
-
if (project.config.deployment?.appName) {
|
|
188
|
+
} else if (project.config.deployment?.appName) {
|
|
140
189
|
-%>
|
|
141
190
|
|
|
142
191
|
- name: Deploy <%- project.name %>
|
|
@@ -2,6 +2,21 @@
|
|
|
2
2
|
to: '.github/workflows/release.yaml'
|
|
3
3
|
strategy: overwrite
|
|
4
4
|
---
|
|
5
|
+
<%
|
|
6
|
+
let appsWithDb = [];
|
|
7
|
+
|
|
8
|
+
for (let project of workspace.projects) {
|
|
9
|
+
if (project.config.deployment?.dbInstance) {
|
|
10
|
+
appsWithDb.push(project.name);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
let appsWithDbFilter = appsWithDb.map((name) => `--filter=!${name}`).join(' ');
|
|
15
|
+
|
|
16
|
+
if (appsWithDbFilter) {
|
|
17
|
+
appsWithDbFilter = `-- ${appsWithDbFilter}`;
|
|
18
|
+
}
|
|
19
|
+
-%>
|
|
5
20
|
#
|
|
6
21
|
# DO NOT EDIT!
|
|
7
22
|
# This file was autogenerated by Carson.
|
|
@@ -43,6 +58,24 @@ jobs:
|
|
|
43
58
|
node-version: 20
|
|
44
59
|
registry-url: 'https://registry.npmjs.org'
|
|
45
60
|
|
|
61
|
+
<%
|
|
62
|
+
if (workspace.projects.some((project) => project.config.deployment?.appName)) {
|
|
63
|
+
-%>
|
|
64
|
+
|
|
65
|
+
- uses: superfly/flyctl-actions/setup-flyctl@master
|
|
66
|
+
<%
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
if (workspace.projects.some((project) => project.config.deployment?.dbInstance)) {
|
|
70
|
+
-%>
|
|
71
|
+
|
|
72
|
+
- uses: edgedb/setup-edgedb@v1
|
|
73
|
+
with:
|
|
74
|
+
server-version: none
|
|
75
|
+
<%
|
|
76
|
+
}
|
|
77
|
+
-%>
|
|
78
|
+
|
|
46
79
|
- name: Install packages
|
|
47
80
|
run: npm ci
|
|
48
81
|
|
|
@@ -60,8 +93,42 @@ jobs:
|
|
|
60
93
|
|
|
61
94
|
git config --unset core.filemode
|
|
62
95
|
|
|
96
|
+
<%
|
|
97
|
+
for (let project of workspace.projects) {
|
|
98
|
+
if (project.config.deployment?.dbInstance) {
|
|
99
|
+
-%>
|
|
100
|
+
|
|
101
|
+
- name: Migrate "<%- project.name %>"
|
|
102
|
+
run: |
|
|
103
|
+
edgedb migrate
|
|
104
|
+
env:
|
|
105
|
+
EDGEDB_INSTANCE: <%- project.config.deployment.dbInstance %>
|
|
106
|
+
EDGEDB_BRANCH: ${{ github.ref_name }}
|
|
107
|
+
EDGEDB_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance.split('/')[1] ?? '').toUpperCase() %>_EDGEDB_TOKEN }}
|
|
108
|
+
<%
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
-%>
|
|
112
|
+
|
|
113
|
+
- name: Run tests
|
|
114
|
+
run: npm test <%- appsWithDbFilter %>
|
|
115
|
+
|
|
116
|
+
<%
|
|
117
|
+
for (let project of workspace.projects) {
|
|
118
|
+
if (project.config.deployment?.dbInstance) {
|
|
119
|
+
-%>
|
|
120
|
+
|
|
63
121
|
- name: Run tests
|
|
64
|
-
run:
|
|
122
|
+
run: |
|
|
123
|
+
npm run test -- --filter=<%- project.name %>
|
|
124
|
+
env:
|
|
125
|
+
EDGEDB_INSTANCE: <%- project.config.deployment.dbInstance %>
|
|
126
|
+
EDGEDB_BRANCH: ${{ github.head_ref }}
|
|
127
|
+
EDGEDB_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance.split('/')[1] ?? '').toUpperCase() %>_EDGEDB_TOKEN }}
|
|
128
|
+
<%
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
-%>
|
|
65
132
|
|
|
66
133
|
- name: Check for changes
|
|
67
134
|
run: |
|
|
@@ -128,19 +195,26 @@ jobs:
|
|
|
128
195
|
- name: Push changes
|
|
129
196
|
run: |
|
|
130
197
|
git push --follow-tags
|
|
198
|
+
|
|
131
199
|
<%
|
|
132
|
-
|
|
200
|
+
for (let project of workspace.projects) {
|
|
201
|
+
if (project.config.deployment?.appName && project.config.deployment?.dbInstance) {
|
|
133
202
|
-%>
|
|
134
203
|
|
|
135
|
-
-
|
|
204
|
+
- name: Deploy "<%- project.name %>"
|
|
205
|
+
run:
|
|
206
|
+
npm run deploy --workspace <%- project.name %> -- --build-secret EDGEDB_INSTANCE=$EDGEDB_INSTANCE --build-secret EDGEDB_SECRET_KEY=$EDGEDB_SECRET_KEY
|
|
207
|
+
env:
|
|
208
|
+
FLY_ACCESS_TOKEN: ${{ secrets.FLY_TOKEN }}
|
|
209
|
+
FLY_API_TOKEN: ${{ secrets.FLY_TOKEN }}
|
|
210
|
+
EDGEDB_INSTANCE: <%- project.config.deployment.dbInstance %>
|
|
211
|
+
EDGEDB_BRANCH: ${{ github.head_ref }}
|
|
212
|
+
EDGEDB_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance.split('/')[1] ?? '').toUpperCase() %>_EDGEDB_TOKEN }}
|
|
136
213
|
<%
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
for (let project of workspace.projects) {
|
|
140
|
-
if (project.config.deployment?.appName) {
|
|
214
|
+
} else if (project.config.deployment?.appName) {
|
|
141
215
|
-%>
|
|
142
216
|
|
|
143
|
-
- name: Deploy <%- project.name %>
|
|
217
|
+
- name: Deploy "<%- project.name %>"
|
|
144
218
|
run:
|
|
145
219
|
npm run deploy --workspace <%- project.name %>
|
|
146
220
|
env:
|
|
@@ -194,6 +268,24 @@ for (let project of workspace.projects) {
|
|
|
194
268
|
node-version: 20
|
|
195
269
|
registry-url: 'https://registry.npmjs.org'
|
|
196
270
|
|
|
271
|
+
<%
|
|
272
|
+
if (workspace.projects.some((project) => project.config.deployment?.appName)) {
|
|
273
|
+
-%>
|
|
274
|
+
|
|
275
|
+
- uses: superfly/flyctl-actions/setup-flyctl@master
|
|
276
|
+
<%
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
if (workspace.projects.some((project) => project.config.deployment?.dbInstance)) {
|
|
280
|
+
-%>
|
|
281
|
+
|
|
282
|
+
- uses: edgedb/setup-edgedb@v1
|
|
283
|
+
with:
|
|
284
|
+
server-version: none
|
|
285
|
+
<%
|
|
286
|
+
}
|
|
287
|
+
-%>
|
|
288
|
+
|
|
197
289
|
- name: Install packages
|
|
198
290
|
run: npm ci
|
|
199
291
|
|
|
@@ -211,8 +303,42 @@ for (let project of workspace.projects) {
|
|
|
211
303
|
|
|
212
304
|
git config --unset core.filemode
|
|
213
305
|
|
|
306
|
+
<%
|
|
307
|
+
for (let project of workspace.projects) {
|
|
308
|
+
if (project.config.deployment?.dbInstance) {
|
|
309
|
+
-%>
|
|
310
|
+
|
|
311
|
+
- name: Migrate "<%- project.name %>"
|
|
312
|
+
env:
|
|
313
|
+
EDGEDB_INSTANCE: <%- project.config.deployment.dbInstance %>
|
|
314
|
+
EDGEDB_BRANCH: ${{ github.ref_name }}
|
|
315
|
+
EDGEDB_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance.split('/')[1] ?? '').toUpperCase() %>_EDGEDB_TOKEN }}
|
|
316
|
+
run: |
|
|
317
|
+
edgedb migrate
|
|
318
|
+
<%
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
-%>
|
|
322
|
+
|
|
214
323
|
- name: Run tests
|
|
215
|
-
run: npm test
|
|
324
|
+
run: npm test <%- appsWithDbFilter %>
|
|
325
|
+
|
|
326
|
+
<%
|
|
327
|
+
for (let project of workspace.projects) {
|
|
328
|
+
if (project.config.deployment?.dbInstance) {
|
|
329
|
+
-%>
|
|
330
|
+
|
|
331
|
+
- name: Run tests
|
|
332
|
+
run: |
|
|
333
|
+
npm run test -- --filter=<%- project.name %>
|
|
334
|
+
env:
|
|
335
|
+
EDGEDB_INSTANCE: <%- project.config.deployment.dbInstance %>
|
|
336
|
+
EDGEDB_BRANCH: ${{ github.head_ref }}
|
|
337
|
+
EDGEDB_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance.split('/')[1] ?? '').toUpperCase() %>_EDGEDB_TOKEN }}
|
|
338
|
+
<%
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
-%>
|
|
216
342
|
|
|
217
343
|
- name: Check for changes
|
|
218
344
|
run: |
|
|
@@ -262,18 +388,24 @@ for (let project of workspace.projects) {
|
|
|
262
388
|
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
263
389
|
NPM_CONFIG_PROVENANCE: 'true' # must be string, not boolean
|
|
264
390
|
<%
|
|
265
|
-
|
|
391
|
+
for (let project of workspace.projects) {
|
|
392
|
+
if (project.config.deployment?.appName && project.config.deployment?.dbInstance) {
|
|
266
393
|
-%>
|
|
267
394
|
|
|
268
|
-
-
|
|
395
|
+
- name: Deploy "<%- project.name %>"
|
|
396
|
+
run:
|
|
397
|
+
npm run deploy --workspace <%- project.name %> -- --app <%- project.config.deployment?.appName %>-next --build-secret EDGEDB_INSTANCE=$EDGEDB_INSTANCE --build-secret EDGEDB_SECRET_KEY=$EDGEDB_SECRET_KEY
|
|
398
|
+
env:
|
|
399
|
+
FLY_ACCESS_TOKEN: ${{ secrets.FLY_TOKEN }}
|
|
400
|
+
FLY_API_TOKEN: ${{ secrets.FLY_TOKEN }}
|
|
401
|
+
EDGEDB_INSTANCE: <%- project.config.deployment.dbInstance %>
|
|
402
|
+
EDGEDB_BRANCH: ${{ github.head_ref }}
|
|
403
|
+
EDGEDB_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance.split('/')[1] ?? '').toUpperCase() %>_EDGEDB_TOKEN }}
|
|
269
404
|
<%
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
for (let project of workspace.projects) {
|
|
273
|
-
if (project.config.deployment?.appName) {
|
|
405
|
+
} else if (project.config.deployment?.appName) {
|
|
274
406
|
-%>
|
|
275
407
|
|
|
276
|
-
- name: Deploy <%- project.name %>
|
|
408
|
+
- name: Deploy "<%- project.name %>"
|
|
277
409
|
run:
|
|
278
410
|
npm run deploy --workspace <%- project.name %> -- --app <%- project.config.deployment?.appName %>-next
|
|
279
411
|
env:
|
|
@@ -8,7 +8,7 @@ let turboConfig = {
|
|
|
8
8
|
pipeline: {
|
|
9
9
|
build: {
|
|
10
10
|
dependsOn: ['^build', 'codegen'],
|
|
11
|
-
outputs: [`${BUILD_DIRECTORY}
|
|
11
|
+
outputs: [`${BUILD_DIRECTORY}/**`, 'app/**'],
|
|
12
12
|
},
|
|
13
13
|
clean: {
|
|
14
14
|
cache: false,
|
|
@@ -33,7 +33,7 @@ let turboConfig = {
|
|
|
33
33
|
outputs: [],
|
|
34
34
|
},
|
|
35
35
|
test: {
|
|
36
|
-
dependsOn: ['^build', 'typecheck', 'lint'],
|
|
36
|
+
dependsOn: ['^build', 'codegen', 'typecheck', 'lint'],
|
|
37
37
|
outputs: ['coverage/**'],
|
|
38
38
|
},
|
|
39
39
|
typecheck: {
|
|
@@ -41,6 +41,7 @@ let turboConfig = {
|
|
|
41
41
|
outputs: [],
|
|
42
42
|
},
|
|
43
43
|
},
|
|
44
|
+
globalEnv: workspace.projects.some((project) => project.config.deployment?.dbInstance) ? ['EDGEDB_INSTANCE', 'EDGEDB_BRANCH', 'EDGEDB_SECRET_KEY'] : [],
|
|
44
45
|
globalDependencies: [
|
|
45
46
|
'.editorconfig',
|
|
46
47
|
'.eslintrc.cjs',
|
|
@@ -49,6 +50,7 @@ let turboConfig = {
|
|
|
49
50
|
'tsconfig.json',
|
|
50
51
|
'tsconfig.typecheck.json',
|
|
51
52
|
],
|
|
53
|
+
|
|
52
54
|
};
|
|
53
55
|
|
|
54
56
|
if (workspace.projects.find((project) => project.name === LINTER_CONFIG_PACKAGE_NAME)) {
|