diff --git a/src/lib/components/git/productionBranchFieldset.svelte b/src/lib/components/git/productionBranchFieldset.svelte
index bf774d129..885258354 100644
--- a/src/lib/components/git/productionBranchFieldset.svelte
+++ b/src/lib/components/git/productionBranchFieldset.svelte
@@ -1,7 +1,7 @@
@@ -49,6 +59,25 @@
required
{options} />
{/key}
+
+ {#if isCloud}
+
+
+ {#if $organization?.billingPlan === BillingPlan.FREE}
+
+ Upgrade to Pro or Scale to adjust
+ your CPU and RAM beyond the default.
+
+ {/if}
+
+ {/if}
{#if showEntrypoint}
+ href={`${wizardBase}/create-function/template-${starterTemplate.id}?runtime=${runtimeDetail.$id}`}>
{
+ return {
+ value: runtime.$id,
+ label: `${runtime.name} - ${runtime.version}`,
+ leadingHtml: `
`
+ };
+ });
+
+ const specificationOptions = data.specificationsList.specifications.map((size) => ({
+ label:
+ `${size.cpus} CPU, ${size.memory} MB RAM` +
+ (!size.enabled ? ` (Upgrade to use this)` : ''),
+ value: size.slug,
+ disabled: !size.enabled
+ }));
let showExitModal = false;
let formComponent: Form;
@@ -31,18 +48,18 @@
let entrypoint = '';
let buildCommand = '';
let scopes: string[] = [];
- let branch: string;
- let rootDir = './';
let variables: Partial[] = [];
- let silentMode = false;
+ let files: FileList;
+ let specification = specificationOptions[0].value;
async function create() {
try {
- const rt = Object.values(Runtime).find((r) => r === runtime);
+ console.log(runtime);
+
const func = await sdk.forProject.functions.create(
id,
name,
- rt,
+ runtime,
undefined,
undefined,
undefined,
@@ -52,12 +69,12 @@
entrypoint,
undefined,
scopes,
- $installation.$id,
- $repository.id,
- branch,
- silentMode,
- rootDir,
- undefined //TODO: specs
+ undefined,
+ undefined,
+ undefined,
+ undefined,
+ undefined,
+ specification || undefined
);
// Add domain
@@ -77,14 +94,20 @@
);
await Promise.all(promises);
- await sdk.forProject.functions.createVcsDeployment(func.$id, Type.Branch, branch, true);
+ await sdk.forProject.functions.createDeployment(
+ func.$id,
+ files[0],
+ true,
+ entrypoint,
+ buildCommand
+ );
trackEvent(Submit.FunctionCreate, {
source: 'repository',
runtime: runtime
});
- await goto(`${base}/project-${$page.params.project}/functions/function=${func.$id}`);
+ await goto(`${base}/project-${$page.params.project}/functions/function-${func.$id}`);
invalidate(Dependencies.FUNCTION);
} catch (e) {
@@ -95,14 +118,6 @@
trackError(e, Submit.FunctionCreate);
}
}
-
- const runtimeOptions = data.runtimesList.runtimes.map((runtime) => {
- return {
- value: runtime.name,
- label: `${runtime.name} - ${runtime.version}`,
- leadingHtml: `
`
- };
- });
@@ -113,18 +128,58 @@
title="Create function"
bind:showExitModal
href={`${base}/project-${$page.params.project}/functions`}
+ column
+ columnSize="s"
confirmExit>
diff --git a/src/routes/(console)/project-[project]/functions/create-function/manual/+page.ts b/src/routes/(console)/project-[project]/functions/create-function/manual/+page.ts
index 0acde7474..aa4c29297 100644
--- a/src/routes/(console)/project-[project]/functions/create-function/manual/+page.ts
+++ b/src/routes/(console)/project-[project]/functions/create-function/manual/+page.ts
@@ -1,8 +1,9 @@
export const load = async ({ parent }) => {
- let { installations, runtimesList } = await parent();
+ let { installations, runtimesList, specificationsList } = await parent();
return {
installations,
- runtimesList
+ runtimesList,
+ specificationsList
};
};
diff --git a/src/routes/(console)/project-[project]/functions/create-function/manual/configuration.svelte b/src/routes/(console)/project-[project]/functions/create-function/manual/configuration.svelte
new file mode 100644
index 000000000..9dff286a2
--- /dev/null
+++ b/src/routes/(console)/project-[project]/functions/create-function/manual/configuration.svelte
@@ -0,0 +1,36 @@
+
+
+
diff --git a/src/routes/(console)/project-[project]/functions/create-function/repository-[repository]/+page.svelte b/src/routes/(console)/project-[project]/functions/create-function/repository-[repository]/+page.svelte
index bab35cbc8..a735fddf5 100644
--- a/src/routes/(console)/project-[project]/functions/create-function/repository-[repository]/+page.svelte
+++ b/src/routes/(console)/project-[project]/functions/create-function/repository-[repository]/+page.svelte
@@ -24,6 +24,22 @@
import RepoCard from './repoCard.svelte';
export let data;
+
+ const specificationOptions = data.specificationsList.specifications.map((size) => ({
+ label:
+ `${size.cpus} CPU, ${size.memory} MB RAM` +
+ (!size.enabled ? ` (Upgrade to use this)` : ''),
+ value: size.slug,
+ disabled: !size.enabled
+ }));
+ const runtimeOptions = data.runtimesList.runtimes.map((runtime) => {
+ return {
+ value: runtime.$id,
+ label: `${runtime.name} - ${runtime.version}`,
+ leadingHtml: `
`
+ };
+ });
+
let showExitModal = false;
let formComponent: Form;
@@ -39,14 +55,7 @@
let rootDir = './';
let variables: Partial[] = [];
let silentMode = false;
-
- const runtimeOptions = data.runtimesList.runtimes.map((runtime) => {
- return {
- value: runtime.name,
- label: `${runtime.name} - ${runtime.version}`,
- leadingHtml: `
`
- };
- });
+ let specification = specificationOptions[0].value;
onMount(async () => {
installation.set(data.installation);
@@ -74,7 +83,7 @@
branch,
silentMode,
rootDir,
- undefined //TODO: specs
+ specification || undefined
);
// Add domain
@@ -101,7 +110,7 @@
runtime: runtime
});
- await goto(`${base}/project-${$page.params.project}/functions/function=${func.$id}`);
+ await goto(`${base}/project-${$page.params.project}/functions/function-${func.$id}`);
invalidate(Dependencies.FUNCTION);
} catch (e) {
@@ -132,6 +141,8 @@
bind:entrypoint
bind:id
bind:runtime
+ bind:specification
+ {specificationOptions}
options={runtimeOptions}
showEntrypoint />
@@ -161,7 +172,7 @@
submissionLoader
on:click={() => formComponent.triggerSubmit()}
disabled={$isSubmitting}>
- Create
+ Deploy
diff --git a/src/routes/(console)/project-[project]/functions/create-function/repository-[repository]/+page.ts b/src/routes/(console)/project-[project]/functions/create-function/repository-[repository]/+page.ts
index c4666ce25..bd85e0a40 100644
--- a/src/routes/(console)/project-[project]/functions/create-function/repository-[repository]/+page.ts
+++ b/src/routes/(console)/project-[project]/functions/create-function/repository-[repository]/+page.ts
@@ -1,7 +1,7 @@
import { sdk } from '$lib/stores/sdk';
export const load = async ({ parent, params, url }) => {
- const { installations, runtimesList } = await parent();
+ const { installations, runtimesList, specificationsList } = await parent();
const [repository] = await Promise.all([
sdk.forProject.vcs.getRepository(url.searchParams.get('installation'), params.repository)
@@ -13,6 +13,7 @@ export const load = async ({ parent, params, url }) => {
(installation) => installation.$id === url.searchParams.get('installation')
),
repository,
- runtimesList
+ runtimesList,
+ specificationsList
};
};
diff --git a/src/routes/(console)/project-[project]/functions/create-function/repository-[repository]/configuration.svelte b/src/routes/(console)/project-[project]/functions/create-function/repository-[repository]/configuration.svelte
index 4bb1ab7bf..9dff286a2 100644
--- a/src/routes/(console)/project-[project]/functions/create-function/repository-[repository]/configuration.svelte
+++ b/src/routes/(console)/project-[project]/functions/create-function/repository-[repository]/configuration.svelte
@@ -8,7 +8,7 @@
export let scopes: string[] = [];
-