mirror of
https://github.com/appwrite/console.git
synced 2026-06-06 19:27:48 +00:00
fix: deployment
This commit is contained in:
+1
-1
@@ -23,7 +23,7 @@
|
||||
"@appwrite.io/pink-icons": "0.25.0",
|
||||
"@appwrite.io/pink-icons-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@f0102c9f",
|
||||
"@appwrite.io/pink-legacy": "^1.0.1",
|
||||
"@appwrite.io/pink-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@f7e429f",
|
||||
"@appwrite.io/pink-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@f99d781",
|
||||
"@popperjs/core": "^2.11.8",
|
||||
"@sentry/sveltekit": "^8.38.0",
|
||||
"@stripe/stripe-js": "^3.5.0",
|
||||
|
||||
Generated
+9
-9
@@ -21,8 +21,8 @@ importers:
|
||||
specifier: ^1.0.1
|
||||
version: 1.0.1
|
||||
'@appwrite.io/pink-svelte':
|
||||
specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@f7e429f
|
||||
version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@f7e429f(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19)
|
||||
specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@f99d781
|
||||
version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@f99d781(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19)
|
||||
'@popperjs/core':
|
||||
specifier: ^2.11.8
|
||||
version: 2.11.8
|
||||
@@ -221,8 +221,8 @@ packages:
|
||||
peerDependencies:
|
||||
svelte: ^4.0.0
|
||||
|
||||
'@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@f7e429f7c7be7210ce06603cbcaef09e7f9c2fdf':
|
||||
resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@f7e429f7c7be7210ce06603cbcaef09e7f9c2fdf}
|
||||
'@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@f99d781924ba95e7ed83708ca8e4c26f80293c3c':
|
||||
resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@f99d781924ba95e7ed83708ca8e4c26f80293c3c}
|
||||
version: 1.0.0-next.7
|
||||
peerDependencies:
|
||||
svelte: ^4.0.0
|
||||
@@ -236,8 +236,8 @@ packages:
|
||||
'@appwrite.io/pink-legacy@1.0.1':
|
||||
resolution: {integrity: sha512-e5IZx2drqSxgl2WXvmr0eLfg/WiOCzuqQE8oksD+9GoFBkcL9HWvXul5GjFni3RBAN9XFRL3nUExGk4T0H8sFw==}
|
||||
|
||||
'@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@f7e429f':
|
||||
resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@f7e429f}
|
||||
'@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@f99d781':
|
||||
resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@f99d781}
|
||||
version: 1.0.0-next.85
|
||||
peerDependencies:
|
||||
react-dom: ^18.0.0
|
||||
@@ -4103,7 +4103,7 @@ snapshots:
|
||||
dependencies:
|
||||
svelte: 4.2.19
|
||||
|
||||
'@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@f7e429f7c7be7210ce06603cbcaef09e7f9c2fdf(svelte@4.2.19)':
|
||||
'@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@f99d781924ba95e7ed83708ca8e4c26f80293c3c(svelte@4.2.19)':
|
||||
dependencies:
|
||||
svelte: 4.2.19
|
||||
|
||||
@@ -4116,9 +4116,9 @@ snapshots:
|
||||
'@appwrite.io/pink-icons': 1.0.0
|
||||
the-new-css-reset: 1.11.3
|
||||
|
||||
'@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@f7e429f(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19)':
|
||||
'@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@f99d781(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19)':
|
||||
dependencies:
|
||||
'@appwrite.io/pink-icons-svelte': https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@f7e429f7c7be7210ce06603cbcaef09e7f9c2fdf(svelte@4.2.19)
|
||||
'@appwrite.io/pink-icons-svelte': https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@f99d781924ba95e7ed83708ca8e4c26f80293c3c(svelte@4.2.19)
|
||||
'@floating-ui/dom': 1.6.13
|
||||
'@melt-ui/pp': 0.3.2(@melt-ui/svelte@0.86.3(svelte@4.2.19))(svelte@4.2.19)
|
||||
'@melt-ui/svelte': 0.86.3(svelte@4.2.19)
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
let selectedRepository = '';
|
||||
let installations = { installations: [], total: 0 };
|
||||
let hasInstallations = !!installations?.total;
|
||||
let error = '';
|
||||
|
||||
onMount(async () => {
|
||||
installations = await sdk.forProject.vcs.listInstallations();
|
||||
@@ -54,18 +55,17 @@
|
||||
repository.set(repo);
|
||||
selectedRepository = repo.id;
|
||||
}
|
||||
console.log(Object.keys(Framework));
|
||||
|
||||
const s = await sdk.forProject.sites.update(
|
||||
site.$id,
|
||||
site.name,
|
||||
Framework[site.framework],
|
||||
site.framework as Framework,
|
||||
site.enabled,
|
||||
site.timeout,
|
||||
site.installCommand,
|
||||
site.buildCommand,
|
||||
site.outputDirectory,
|
||||
BuildRuntime[site.buildRuntime],
|
||||
site.buildRuntime as BuildRuntime,
|
||||
site.adapter,
|
||||
site.fallbackFile,
|
||||
selectedInstallationId,
|
||||
@@ -79,20 +79,20 @@
|
||||
type: 'success',
|
||||
message: 'Repository connected successfully'
|
||||
});
|
||||
} catch (error) {
|
||||
addNotification({
|
||||
type: 'error',
|
||||
message: error.message
|
||||
});
|
||||
} catch (e) {
|
||||
error = e.message;
|
||||
}
|
||||
}
|
||||
|
||||
$: console.log(selectedInstallationId);
|
||||
</script>
|
||||
|
||||
<Modal
|
||||
title="Connect repository"
|
||||
bind:show
|
||||
hideFooter={!repositoryBehaviour}
|
||||
onSubmit={connectRepo}>
|
||||
onSubmit={connectRepo}
|
||||
bind:error>
|
||||
<span slot="description"> Connect to a new repository or an existing one. </span>
|
||||
{#if hasInstallations}
|
||||
<Layout.Stack gap="xl">
|
||||
|
||||
@@ -43,8 +43,9 @@
|
||||
<svelte:fragment slot="footer">
|
||||
<Button external href={`${$protocol}${data.deployment.domain}`}>Visit</Button>
|
||||
<!-- TODO: disable when disabled={data.hasProdReadyDeployments} -->
|
||||
<Button secondary on:click={() => (showRollback = true)}
|
||||
>Instant rollback</Button>
|
||||
<Button secondary on:click={() => (showRollback = true)}>
|
||||
Instant rollback
|
||||
</Button>
|
||||
</svelte:fragment>
|
||||
</SiteCard>
|
||||
{:else if data.deployment?.status === 'building'}
|
||||
@@ -61,11 +62,11 @@
|
||||
{:else}
|
||||
<Card.Base padding="none">
|
||||
<Empty
|
||||
title="No deployments found"
|
||||
title="There is no active deployment"
|
||||
src={$app.themeInUse === 'dark' ? EmptyDeploymentDark : EmptyDeploymentLight}>
|
||||
<span slot="description">
|
||||
You haven't deployed any sites yet. Get started by deploying your first
|
||||
site.
|
||||
Deploy your site to get started. Once deployed, you'll see your latest build
|
||||
details here.
|
||||
</span>
|
||||
</Empty>
|
||||
</Card.Base>
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
import { sdk } from '$lib/stores/sdk';
|
||||
import { invalidate } from '$app/navigation';
|
||||
import { Dependencies } from '$lib/constants';
|
||||
import CreateCliModal from './createCliModal.svelte';
|
||||
|
||||
export let data;
|
||||
|
||||
@@ -208,3 +209,6 @@
|
||||
{#if showConnectManual}
|
||||
<CreateManualDeploymentModal bind:show={showConnectManual} site={data.site} />
|
||||
{/if}
|
||||
{#if showConnectCLI}
|
||||
<CreateCliModal bind:show={showConnectCLI} site={data.site} />
|
||||
{/if}
|
||||
|
||||
+103
@@ -0,0 +1,103 @@
|
||||
<script lang="ts">
|
||||
import { Button } from '$lib/elements/forms';
|
||||
import { Modal, Alert } from '$lib/components';
|
||||
import { onMount } from 'svelte';
|
||||
import { page } from '$app/stores';
|
||||
import SecondaryTabs from '$lib/components/secondaryTabs.svelte';
|
||||
import SecondaryTabsItem from '$lib/components/secondaryTabsItem.svelte';
|
||||
import { Code, Layout, Tabs } from '@appwrite.io/pink-svelte';
|
||||
|
||||
export let show = false;
|
||||
|
||||
let lang = 'js';
|
||||
let codeSnippets = {};
|
||||
let os = 'unknown';
|
||||
let category = 'Unix';
|
||||
|
||||
const siteId = $page.params.site;
|
||||
codeSnippets = setCodeSnippets(lang);
|
||||
|
||||
onMount(() => {
|
||||
// lang = setLanguage($func.runtime);
|
||||
codeSnippets = setCodeSnippets(lang);
|
||||
os = navigator['userAgentData']?.platform || navigator?.platform || 'unknown';
|
||||
|
||||
if (os.includes('Win')) {
|
||||
category = 'CMD';
|
||||
} else if (os.includes('Mac') || os.includes('Linux')) {
|
||||
category = 'Unix';
|
||||
} else {
|
||||
category = 'Unix';
|
||||
}
|
||||
});
|
||||
|
||||
function setCodeSnippets(lang: string) {
|
||||
return {
|
||||
Unix: {
|
||||
code: `appwrite functions createDeployment \\
|
||||
--siteId=${siteId} \\
|
||||
--entrypoint='index.${lang}' \\
|
||||
--code="." \\
|
||||
--activate=true`,
|
||||
language: 'bash'
|
||||
},
|
||||
|
||||
CMD: {
|
||||
code: `appwrite functions createDeployment ^
|
||||
--siteId=${siteId} ^
|
||||
--entrypoint='index.${lang}' ^
|
||||
--code="." ^
|
||||
--activate=true`,
|
||||
language: 'CMD'
|
||||
},
|
||||
PowerShell: {
|
||||
code: `appwrite functions createDeployment ,
|
||||
--siteId=${siteId} ,
|
||||
--entrypoint='index.${lang}' ,
|
||||
--code="." ,
|
||||
--activate=true`,
|
||||
language: 'PowerShell'
|
||||
}
|
||||
};
|
||||
}
|
||||
</script>
|
||||
|
||||
<Modal title="Create CLI deployment" bind:show hideFooter>
|
||||
<span slot="description">
|
||||
Deploy your site using the Appwrite CLI by running the following command inside your
|
||||
function's folder.
|
||||
</span>
|
||||
|
||||
<Layout.Stack gap="l">
|
||||
<Layout.Stack gap="s">
|
||||
<Tabs.Root let:root stretch>
|
||||
{#each ['Unix', 'CMD', 'PowerShell'] as cat}
|
||||
<Tabs.Item.Button
|
||||
{root}
|
||||
on:click={() => (category = cat)}
|
||||
active={category === cat}>
|
||||
{cat}
|
||||
</Tabs.Item.Button>
|
||||
{/each}
|
||||
</Tabs.Root>
|
||||
|
||||
{#each ['Unix', 'CMD', 'PowerShell'] as cat}
|
||||
{#if category === cat}
|
||||
<Code hideHeader lang="sh" code={codeSnippets[cat].code} />
|
||||
{/if}
|
||||
{/each}
|
||||
</Layout.Stack>
|
||||
|
||||
<Alert dismissible={false} type="warning">
|
||||
If you did not create your site using the CLI, initialize your function by following our <a
|
||||
href="https://appwrite.io/docs/tooling/command-line/installation"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
class="link">documentation</a
|
||||
>.
|
||||
</Alert>
|
||||
</Layout.Stack>
|
||||
<svelte:fragment slot="footer">
|
||||
<Button secondary on:click={() => (show = false)}>Close</Button>
|
||||
</svelte:fragment>
|
||||
</Modal>
|
||||
@@ -50,12 +50,14 @@
|
||||
unique domain.
|
||||
</Typography.Caption>
|
||||
</Layout.Stack>
|
||||
<Button
|
||||
secondary
|
||||
size="xs"
|
||||
href={`${base}/project-${$page.params.project}/sites/site-${$page.params.site}/domains/add-domain`}>
|
||||
Add domain
|
||||
</Button>
|
||||
<div>
|
||||
<Button
|
||||
secondary
|
||||
size="xs"
|
||||
href={`${base}/project-${$page.params.project}/sites/site-${$page.params.site}/domains/add-domain`}>
|
||||
Add domain
|
||||
</Button>
|
||||
</div>
|
||||
</Layout.Stack>
|
||||
{#if proxyRuleList?.rules?.length}
|
||||
<Divider />
|
||||
|
||||
Reference in New Issue
Block a user