@jakubmazanec/carson-templates 2.3.0 → 2.4.0-next.83fd9d1
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/build/getAppUrl.d.ts +2 -0
- package/build/getAppUrl.js +13 -0
- package/build/getAppUrl.js.map +7 -0
- package/build/main.d.ts +1 -0
- package/build/main.js +1 -0
- package/build/main.js.map +2 -2
- package/package.json +1 -1
- package/source/getAppUrl.ts +16 -0
- package/source/main.ts +1 -0
- package/templates/projects/remix-app/Dockerfile.ejs +7 -0
- package/templates/workspace/.github/workflows/release-pull-request.yaml.ejs +6 -4
- package/templates/workspace/.github/workflows/release.yaml.ejs +12 -8
- package/templates/workspace/turbo.json.ejs +9 -2
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
export function getAppUrl(project, deploymentEnvironment) {
|
|
3
|
+
let appName = project.config.deployment?.appName;
|
|
4
|
+
let appUrl = project.config.deployment?.appUrl;
|
|
5
|
+
if (appUrl && deploymentEnvironment === void 0 || !appName && appUrl) {
|
|
6
|
+
return appUrl;
|
|
7
|
+
}
|
|
8
|
+
if (!appName) {
|
|
9
|
+
return `http://localhost:5000`;
|
|
10
|
+
}
|
|
11
|
+
return `https://${deploymentEnvironment ? `${appName}-${deploymentEnvironment}` : appName}.fly.dev`;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=getAppUrl.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../source/getAppUrl.ts"],
|
|
4
|
+
"sourcesContent": ["import {type Project} from '@jakubmazanec/carson';\n\nexport function getAppUrl(project: Project, deploymentEnvironment?: string) {\n let appName = (project.config as {deployment?: {appName?: string}}).deployment?.appName;\n let appUrl = (project.config as {deployment?: {appUrl?: string}}).deployment?.appUrl;\n\n if ((appUrl && deploymentEnvironment === undefined) || (!appName && appUrl)) {\n return appUrl;\n }\n\n if (!appName) {\n return `http://localhost:5000`;\n }\n\n return `https://${deploymentEnvironment ? `${appName}-${deploymentEnvironment}` : appName}.fly.dev`;\n}\n"],
|
|
5
|
+
"mappings": ";AAEO,gBAAS,UAAU,SAAkB,uBAAgC;AAC1E,MAAI,UAAW,QAAQ,OAA6C,YAAY;AAChF,MAAI,SAAU,QAAQ,OAA4C,YAAY;AAE9E,MAAK,UAAU,0BAA0B,UAAe,CAAC,WAAW,QAAS;AAC3E,WAAO;AAAA,EACT;AAEA,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAEA,SAAO,WAAW,wBAAwB,GAAG,OAAO,IAAI,qBAAqB,KAAK,OAAO;AAC3F;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/build/main.d.ts
CHANGED
package/build/main.js
CHANGED
package/build/main.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../source/main.ts"],
|
|
4
|
-
"sourcesContent": ["export * from './constants.js';\nexport * from './getDependencies.js';\nexport * from './getDevelopmentBranch.js';\nexport * from './getMainBranch.js';\nexport * from './getReferences.js';\nexport * from './getWorkspaceName.js';\nexport {default as lodash} from 'lodash';\nexport {default as semver} from 'semver';\n"],
|
|
5
|
-
"mappings": ";AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAAQ,WAAW,cAAa;AAChC,SAAQ,WAAW,cAAa;",
|
|
4
|
+
"sourcesContent": ["export * from './constants.js';\nexport * from './getAppUrl.js';\nexport * from './getDependencies.js';\nexport * from './getDevelopmentBranch.js';\nexport * from './getMainBranch.js';\nexport * from './getReferences.js';\nexport * from './getWorkspaceName.js';\nexport {default as lodash} from 'lodash';\nexport {default as semver} from 'semver';\n"],
|
|
5
|
+
"mappings": ";AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAAQ,WAAW,cAAa;AAChC,SAAQ,WAAW,cAAa;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import {type Project} from '@jakubmazanec/carson';
|
|
2
|
+
|
|
3
|
+
export function getAppUrl(project: Project, deploymentEnvironment?: string) {
|
|
4
|
+
let appName = (project.config as {deployment?: {appName?: string}}).deployment?.appName;
|
|
5
|
+
let appUrl = (project.config as {deployment?: {appUrl?: string}}).deployment?.appUrl;
|
|
6
|
+
|
|
7
|
+
if ((appUrl && deploymentEnvironment === undefined) || (!appName && appUrl)) {
|
|
8
|
+
return appUrl;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
if (!appName) {
|
|
12
|
+
return `http://localhost:5000`;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
return `https://${deploymentEnvironment ? `${appName}-${deploymentEnvironment}` : appName}.fly.dev`;
|
|
16
|
+
}
|
package/source/main.ts
CHANGED
|
@@ -43,6 +43,13 @@ WORKDIR /workspace
|
|
|
43
43
|
# Set up env variables
|
|
44
44
|
ENV NODE_ENV=production
|
|
45
45
|
<%
|
|
46
|
+
if (project.config.deployment?.appName) {
|
|
47
|
+
-%>
|
|
48
|
+
ARG VITE_APP_URL
|
|
49
|
+
ENV VITE_APP_URL=$VITE_APP_URL
|
|
50
|
+
<%
|
|
51
|
+
}
|
|
52
|
+
|
|
46
53
|
if (project.config.deployment?.dbInstance) {
|
|
47
54
|
-%>
|
|
48
55
|
ARG EDGEDB_INSTANCE
|
|
@@ -171,21 +171,23 @@ for (let project of workspace.projects) {
|
|
|
171
171
|
|
|
172
172
|
- name: Deploy <%- project.name %>
|
|
173
173
|
run: |
|
|
174
|
-
npm run deploy --workspace <%- project.name %> -- --app <%- project.config.deployment?.appName %>-unstable --build-arg "EDGEDB_INSTANCE=$EDGEDB_INSTANCE" --build-arg "EDGEDB_BRANCH=$EDGEDB_BRANCH" --build-secret "EDGEDB_SECRET_KEY=$EDGEDB_SECRET_KEY"
|
|
174
|
+
npm run deploy --workspace <%- project.name %> -- --app <%- project.config.deployment?.appName %>-unstable --build-arg "VITE_APP_URL=$VITE_APP_URL" --build-arg "EDGEDB_INSTANCE=$EDGEDB_INSTANCE" --build-arg "EDGEDB_BRANCH=$EDGEDB_BRANCH" --build-secret "EDGEDB_SECRET_KEY=$EDGEDB_SECRET_KEY"
|
|
175
175
|
env:
|
|
176
|
-
|
|
177
|
-
FLY_API_TOKEN: ${{ secrets.FLY_TOKEN }}
|
|
176
|
+
VITE_APP_URL: <%- getAppUrl(project, 'unstable') %>
|
|
178
177
|
EDGEDB_INSTANCE: <%- project.config.deployment.dbInstance %>
|
|
179
178
|
EDGEDB_BRANCH: ${{ github.head_ref }}
|
|
180
179
|
EDGEDB_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance).toUpperCase() %>_EDGEDB_TOKEN }}
|
|
180
|
+
FLY_ACCESS_TOKEN: ${{ secrets.FLY_TOKEN }}
|
|
181
|
+
FLY_API_TOKEN: ${{ secrets.FLY_TOKEN }}
|
|
181
182
|
<%
|
|
182
183
|
} else if (project.config.deployment?.appName) {
|
|
183
184
|
-%>
|
|
184
185
|
|
|
185
186
|
- name: Deploy <%- project.name %>
|
|
186
187
|
run: |
|
|
187
|
-
npm run deploy --workspace <%- project.name %> -- --app <%- project.config.deployment?.appName %>-unstable
|
|
188
|
+
npm run deploy --workspace <%- project.name %> -- --app <%- project.config.deployment?.appName %>-unstable --build-arg "VITE_APP_URL=$VITE_APP_URL"
|
|
188
189
|
env:
|
|
190
|
+
VITE_APP_URL: <%- getAppUrl(project, 'unstable') %>
|
|
189
191
|
FLY_ACCESS_TOKEN: ${{ secrets.FLY_TOKEN }}
|
|
190
192
|
FLY_API_TOKEN: ${{ secrets.FLY_TOKEN }}
|
|
191
193
|
<%
|
|
@@ -214,21 +214,23 @@ for (let project of workspace.projects) {
|
|
|
214
214
|
|
|
215
215
|
- name: Deploy "<%- project.name %>"
|
|
216
216
|
run: |
|
|
217
|
-
npm run deploy --workspace <%- project.name %> -- --build-arg "EDGEDB_INSTANCE=$EDGEDB_INSTANCE" --build-arg "EDGEDB_BRANCH=$EDGEDB_BRANCH" --build-secret "EDGEDB_SECRET_KEY=$EDGEDB_SECRET_KEY"
|
|
217
|
+
npm run deploy --workspace <%- project.name %> -- --build-arg "VITE_APP_URL=$VITE_APP_URL" --build-arg "EDGEDB_INSTANCE=$EDGEDB_INSTANCE" --build-arg "EDGEDB_BRANCH=$EDGEDB_BRANCH" --build-secret "EDGEDB_SECRET_KEY=$EDGEDB_SECRET_KEY"
|
|
218
218
|
env:
|
|
219
|
-
|
|
220
|
-
FLY_API_TOKEN: ${{ secrets.FLY_TOKEN }}
|
|
219
|
+
VITE_APP_URL: <%- getAppUrl(project) %>
|
|
221
220
|
EDGEDB_INSTANCE: <%- project.config.deployment.dbInstance %>
|
|
222
221
|
EDGEDB_BRANCH: ${{ github.ref_name }}
|
|
223
222
|
EDGEDB_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance).toUpperCase() %>_EDGEDB_TOKEN }}
|
|
223
|
+
FLY_ACCESS_TOKEN: ${{ secrets.FLY_TOKEN }}
|
|
224
|
+
FLY_API_TOKEN: ${{ secrets.FLY_TOKEN }}
|
|
224
225
|
<%
|
|
225
226
|
} else if (project.config.deployment?.appName) {
|
|
226
227
|
-%>
|
|
227
228
|
|
|
228
229
|
- name: Deploy "<%- project.name %>"
|
|
229
230
|
run: |
|
|
230
|
-
npm run deploy --workspace <%- project.name %>
|
|
231
|
+
npm run deploy --workspace <%- project.name %> -- --build-arg "VITE_APP_URL=$VITE_APP_URL"
|
|
231
232
|
env:
|
|
233
|
+
VITE_APP_URL: <%- getAppUrl(project) %>
|
|
232
234
|
FLY_ACCESS_TOKEN: ${{ secrets.FLY_TOKEN }}
|
|
233
235
|
FLY_API_TOKEN: ${{ secrets.FLY_TOKEN }}
|
|
234
236
|
<%
|
|
@@ -405,21 +407,23 @@ for (let project of workspace.projects) {
|
|
|
405
407
|
|
|
406
408
|
- name: Deploy "<%- project.name %>"
|
|
407
409
|
run: |
|
|
408
|
-
npm run deploy --workspace <%- project.name %> -- --app <%- project.config.deployment?.appName %>-next --build-arg "EDGEDB_INSTANCE=$EDGEDB_INSTANCE" --build-arg "EDGEDB_BRANCH=$EDGEDB_BRANCH" --build-secret "EDGEDB_SECRET_KEY=$EDGEDB_SECRET_KEY"
|
|
410
|
+
npm run deploy --workspace <%- project.name %> -- --app <%- project.config.deployment?.appName %>-next --build-arg "VITE_APP_URL=$VITE_APP_URL" --build-arg "EDGEDB_INSTANCE=$EDGEDB_INSTANCE" --build-arg "EDGEDB_BRANCH=$EDGEDB_BRANCH" --build-secret "EDGEDB_SECRET_KEY=$EDGEDB_SECRET_KEY"
|
|
409
411
|
env:
|
|
410
|
-
|
|
411
|
-
FLY_API_TOKEN: ${{ secrets.FLY_TOKEN }}
|
|
412
|
+
VITE_APP_URL: <%- getAppUrl(project, 'next') %>
|
|
412
413
|
EDGEDB_INSTANCE: <%- project.config.deployment.dbInstance %>
|
|
413
414
|
EDGEDB_BRANCH: ${{ github.ref_name }}
|
|
414
415
|
EDGEDB_SECRET_KEY: ${{ secrets.<%- lodash.snakeCase(project.config.deployment.dbInstance).toUpperCase() %>_EDGEDB_TOKEN }}
|
|
416
|
+
FLY_ACCESS_TOKEN: ${{ secrets.FLY_TOKEN }}
|
|
417
|
+
FLY_API_TOKEN: ${{ secrets.FLY_TOKEN }}
|
|
415
418
|
<%
|
|
416
419
|
} else if (project.config.deployment?.appName) {
|
|
417
420
|
-%>
|
|
418
421
|
|
|
419
422
|
- name: Deploy "<%- project.name %>"
|
|
420
423
|
run: |
|
|
421
|
-
npm run deploy --workspace <%- project.name %> -- --app <%- project.config.deployment?.appName %>-next
|
|
424
|
+
npm run deploy --workspace <%- project.name %> -- --app <%- project.config.deployment?.appName %>-next --build-arg "VITE_APP_URL=$VITE_APP_URL"
|
|
422
425
|
env:
|
|
426
|
+
VITE_APP_URL: <%- getAppUrl(project, 'next') %>
|
|
423
427
|
FLY_ACCESS_TOKEN: ${{ secrets.FLY_TOKEN }}
|
|
424
428
|
FLY_API_TOKEN: ${{ secrets.FLY_TOKEN }}
|
|
425
429
|
<%
|
|
@@ -41,7 +41,7 @@ let turboConfig = {
|
|
|
41
41
|
outputs: [],
|
|
42
42
|
},
|
|
43
43
|
},
|
|
44
|
-
globalEnv:
|
|
44
|
+
globalEnv: [],
|
|
45
45
|
globalDependencies: [
|
|
46
46
|
'.editorconfig',
|
|
47
47
|
'.eslintrc.cjs',
|
|
@@ -50,9 +50,16 @@ let turboConfig = {
|
|
|
50
50
|
'tsconfig.json',
|
|
51
51
|
'tsconfig.typecheck.json',
|
|
52
52
|
],
|
|
53
|
-
|
|
54
53
|
};
|
|
55
54
|
|
|
55
|
+
if (workspace.projects.some((project) => project.config.deployment?.appName)) {
|
|
56
|
+
turboConfig.globalEnv.push('VITE_APP_URL');
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
if (workspace.projects.some((project) => project.config.deployment?.dbInstance)) {
|
|
60
|
+
turboConfig.globalEnv.push('EDGEDB_INSTANCE', 'EDGEDB_BRANCH', 'EDGEDB_SECRET_KEY');
|
|
61
|
+
}
|
|
62
|
+
|
|
56
63
|
if (workspace.projects.find((project) => project.name === LINTER_CONFIG_PACKAGE_NAME)) {
|
|
57
64
|
turboConfig.pipeline.lint.dependsOn = [`${LINTER_CONFIG_PACKAGE_NAME}#build`, '^build', 'codegen'];
|
|
58
65
|
}
|