@jakubmazanec/carson-templates 2.2.1 → 2.3.0-unstable.1a1eb5f
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/.eslintrc.cjs.ejs +8 -1
- package/templates/projects/remix-app/Dockerfile.ejs +1 -0
- package/templates/projects/remix-app/edgedb.toml.ejs +7 -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 +80 -1
- package/templates/workspace/.github/workflows/release-pull-request.yaml.ejs +44 -1
- package/templates/workspace/.github/workflows/release.yaml.ejs +56 -2
package/package.json
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
to: '.eslintrc.cjs'
|
|
3
3
|
strategy: overwrite
|
|
4
4
|
---
|
|
5
|
+
<%
|
|
6
|
+
let lintIgnorePatterns = [
|
|
7
|
+
...LINT_IGNORE_PATTERNS,
|
|
8
|
+
'dbschema/edgeql-js/',
|
|
9
|
+
'dbschema/interfaces.*',
|
|
10
|
+
];
|
|
11
|
+
-%>
|
|
5
12
|
/**
|
|
6
13
|
* DO NOT EDIT!
|
|
7
14
|
* This file was autogenerated by Carson.
|
|
@@ -17,5 +24,5 @@ module.exports = {
|
|
|
17
24
|
'@jakubmazanec/eslint-config/nodejs',
|
|
18
25
|
'@jakubmazanec/eslint-config/prettier',
|
|
19
26
|
],
|
|
20
|
-
ignorePatterns: <%- JSON.stringify(
|
|
27
|
+
ignorePatterns: <%- JSON.stringify(lintIgnorePatterns, null, 2) %>,
|
|
21
28
|
};
|
|
@@ -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.
|
|
@@ -45,6 +60,17 @@ jobs:
|
|
|
45
60
|
with:
|
|
46
61
|
node-version: 20
|
|
47
62
|
|
|
63
|
+
<%
|
|
64
|
+
if (workspace.projects.some((project) => project.config.deployment?.dbInstance)) {
|
|
65
|
+
-%>
|
|
66
|
+
|
|
67
|
+
- uses: edgedb/setup-edgedb@v1
|
|
68
|
+
with:
|
|
69
|
+
server-version: none
|
|
70
|
+
<%
|
|
71
|
+
}
|
|
72
|
+
-%>
|
|
73
|
+
|
|
48
74
|
- name: Install packages
|
|
49
75
|
run: npm ci
|
|
50
76
|
|
|
@@ -62,8 +88,61 @@ jobs:
|
|
|
62
88
|
|
|
63
89
|
git config --unset core.filemode
|
|
64
90
|
|
|
91
|
+
<%
|
|
92
|
+
for (let project of workspace.projects) {
|
|
93
|
+
if (project.config.deployment?.dbInstance) {
|
|
94
|
+
-%>
|
|
95
|
+
|
|
96
|
+
- name: DEBUG - Run only codegen, directly
|
|
97
|
+
env:
|
|
98
|
+
EDGEDB_INSTANCE: <%- project.config.deployment.dbInstance %>
|
|
99
|
+
EDGEDB_BRANCH: ${{ github.head_ref }}
|
|
100
|
+
EDGEDB_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance.split('/')[1] ?? '').toUpperCase() %>_EDGEDB_TOKEN }}
|
|
101
|
+
run: |
|
|
102
|
+
npm run codegen --workspace <%- project.name %>
|
|
103
|
+
|
|
104
|
+
<%
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
-%>
|
|
108
|
+
|
|
109
|
+
<%
|
|
110
|
+
for (let project of workspace.projects) {
|
|
111
|
+
if (project.config.deployment?.dbInstance) {
|
|
112
|
+
-%>
|
|
113
|
+
|
|
114
|
+
- name: DEBUG - Run only codegen, via Turborepo
|
|
115
|
+
env:
|
|
116
|
+
EDGEDB_INSTANCE: <%- project.config.deployment.dbInstance %>
|
|
117
|
+
EDGEDB_BRANCH: ${{ github.head_ref }}
|
|
118
|
+
EDGEDB_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance.split('/')[1] ?? '').toUpperCase() %>_EDGEDB_TOKEN }}
|
|
119
|
+
run: |
|
|
120
|
+
npx turbo run codegen --filter=<%- project.name %> -vv
|
|
121
|
+
|
|
122
|
+
<%
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
-%>
|
|
126
|
+
|
|
65
127
|
- name: Run tests
|
|
66
|
-
run: npm test
|
|
128
|
+
run: npm test <%- appsWithDbFilter %>
|
|
129
|
+
|
|
130
|
+
<%
|
|
131
|
+
for (let project of workspace.projects) {
|
|
132
|
+
if (project.config.deployment?.dbInstance) {
|
|
133
|
+
-%>
|
|
134
|
+
|
|
135
|
+
- name: Run tests
|
|
136
|
+
env:
|
|
137
|
+
EDGEDB_INSTANCE: <%- project.config.deployment.dbInstance %>
|
|
138
|
+
EDGEDB_BRANCH: ${{ github.head_ref }}
|
|
139
|
+
EDGEDB_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance.split('/')[1] ?? '').toUpperCase() %>_EDGEDB_TOKEN }}
|
|
140
|
+
run: |
|
|
141
|
+
npm run test -- --filter=<%- project.name %> -vv
|
|
142
|
+
<%
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
-%>
|
|
67
146
|
|
|
68
147
|
- name: Check for changes
|
|
69
148
|
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.
|
|
@@ -46,6 +61,17 @@ jobs:
|
|
|
46
61
|
node-version: 20
|
|
47
62
|
registry-url: 'https://registry.npmjs.org'
|
|
48
63
|
|
|
64
|
+
<%
|
|
65
|
+
if (workspace.projects.some((project) => project.config.deployment?.dbInstance)) {
|
|
66
|
+
-%>
|
|
67
|
+
|
|
68
|
+
- uses: edgedb/setup-edgedb@v1
|
|
69
|
+
with:
|
|
70
|
+
server-version: none
|
|
71
|
+
<%
|
|
72
|
+
}
|
|
73
|
+
-%>
|
|
74
|
+
|
|
49
75
|
- name: Install packages
|
|
50
76
|
run: npm ci
|
|
51
77
|
|
|
@@ -64,7 +90,24 @@ jobs:
|
|
|
64
90
|
git config --unset core.filemode
|
|
65
91
|
|
|
66
92
|
- name: Run tests
|
|
67
|
-
run: npm test
|
|
93
|
+
run: npm test <%- appsWithDbFilter %>
|
|
94
|
+
|
|
95
|
+
<%
|
|
96
|
+
for (let project of workspace.projects) {
|
|
97
|
+
if (project.config.deployment?.dbInstance) {
|
|
98
|
+
-%>
|
|
99
|
+
|
|
100
|
+
- name: Run tests
|
|
101
|
+
env:
|
|
102
|
+
EDGEDB_INSTANCE: <%- project.config.deployment.dbInstance %>
|
|
103
|
+
EDGEDB_BRANCH: ${{ github.head_ref }}
|
|
104
|
+
EDGEDB_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance.split('/')[1] ?? '').toUpperCase() %>_EDGEDB_TOKEN }}
|
|
105
|
+
run: |
|
|
106
|
+
npm run test -- --filter=<%- project.name %> -vv
|
|
107
|
+
<%
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
-%>
|
|
68
111
|
|
|
69
112
|
- name: Check for changes
|
|
70
113
|
run: |
|
|
@@ -128,6 +128,34 @@ jobs:
|
|
|
128
128
|
- name: Push changes
|
|
129
129
|
run: |
|
|
130
130
|
git push --follow-tags
|
|
131
|
+
|
|
132
|
+
<%
|
|
133
|
+
if (workspace.projects.some((project) => project.config.deployment?.dbInstance)) {
|
|
134
|
+
-%>
|
|
135
|
+
|
|
136
|
+
- uses: edgedb/setup-edgedb@v1
|
|
137
|
+
with:
|
|
138
|
+
server-version: none
|
|
139
|
+
<%
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
for (let project of workspace.projects) {
|
|
143
|
+
if (project.config.deployment?.dbInstance) {
|
|
144
|
+
-%>
|
|
145
|
+
|
|
146
|
+
- name: Migrate "<%- project.name %>"
|
|
147
|
+
env:
|
|
148
|
+
EDGEDB_INSTANCE: <%- project.config.deployment.dbInstance %>
|
|
149
|
+
EDGEDB_BRANCH: ${{ github.ref_name }}
|
|
150
|
+
EDGEDB_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance.split('/')[1] ?? '').toUpperCase() %>_EDGEDB_TOKEN }}
|
|
151
|
+
run: |
|
|
152
|
+
edgedb project init --link --server-instance <%- project.config.deployment.dbInstance %> --project-dir <%- project.relativePath %>--non-interactive
|
|
153
|
+
edgedb migrate -I <%- project.config.deployment.dbInstance %>
|
|
154
|
+
<%
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
-%>
|
|
158
|
+
|
|
131
159
|
<%
|
|
132
160
|
if (workspace.projects.some((project) => project.config.deployment?.appName)) {
|
|
133
161
|
-%>
|
|
@@ -140,7 +168,7 @@ for (let project of workspace.projects) {
|
|
|
140
168
|
if (project.config.deployment?.appName) {
|
|
141
169
|
-%>
|
|
142
170
|
|
|
143
|
-
- name: Deploy <%- project.name %>
|
|
171
|
+
- name: Deploy "<%- project.name %>"
|
|
144
172
|
run:
|
|
145
173
|
npm run deploy --workspace <%- project.name %>
|
|
146
174
|
env:
|
|
@@ -262,6 +290,32 @@ for (let project of workspace.projects) {
|
|
|
262
290
|
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
263
291
|
NPM_CONFIG_PROVENANCE: 'true' # must be string, not boolean
|
|
264
292
|
<%
|
|
293
|
+
if (workspace.projects.some((project) => project.config.deployment?.dbInstance)) {
|
|
294
|
+
-%>
|
|
295
|
+
|
|
296
|
+
- uses: edgedb/setup-edgedb@v1
|
|
297
|
+
with:
|
|
298
|
+
server-version: none
|
|
299
|
+
<%
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
for (let project of workspace.projects) {
|
|
303
|
+
if (project.config.deployment?.dbInstance) {
|
|
304
|
+
-%>
|
|
305
|
+
|
|
306
|
+
- name: Migrate "<%- project.name %>"
|
|
307
|
+
env:
|
|
308
|
+
EDGEDB_INSTANCE: <%- project.config.deployment.dbInstance %>
|
|
309
|
+
EDGEDB_BRANCH: ${{ github.ref_name }}
|
|
310
|
+
EDGEDB_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance.split('/')[1] ?? '').toUpperCase() %>_EDGEDB_TOKEN }}
|
|
311
|
+
run: |
|
|
312
|
+
edgedb project init --link --server-instance <%- project.config.deployment.dbInstance %> --project-dir <%- project.relativePath %>--non-interactive
|
|
313
|
+
edgedb migrate -I <%- project.config.deployment.dbInstance %>
|
|
314
|
+
<%
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
-%>
|
|
318
|
+
<%
|
|
265
319
|
if (workspace.projects.some((project) => project.config.deployment?.appName)) {
|
|
266
320
|
-%>
|
|
267
321
|
|
|
@@ -273,7 +327,7 @@ for (let project of workspace.projects) {
|
|
|
273
327
|
if (project.config.deployment?.appName) {
|
|
274
328
|
-%>
|
|
275
329
|
|
|
276
|
-
- name: Deploy <%- project.name %>
|
|
330
|
+
- name: Deploy "<%- project.name %>"
|
|
277
331
|
run:
|
|
278
332
|
npm run deploy --workspace <%- project.name %> -- --app <%- project.config.deployment?.appName %>-next
|
|
279
333
|
env:
|