| 85 | | {create: false; workspace: {id: string; login: string}; project: GetProjectResponse}; |
| 86 | |
| 87 | export async function deploy(deployOptions: DeployOptions, effects = defaultEffects): Promise<void> { |
| 88 | Telemetry.record({event: "deploy", step: "start", force: deployOptions.force}); |
| 89 | effects.clack.intro(`${inverse(" observable deploy ")} ${faint(`v${process.env.npm_package_version}`)}`); |
| 90 | effects.clack.log.warn( |
| 91 | wrapAnsi( |
| 92 | `Deploying data apps to Observable Cloud is now deprecated. Please migrate your data app to another static site hosting provider, such as GitHub Pages, Render, Cloudflare Pages, Vercel, or Netlify. For more details, please see: ${underline( |
| 93 | "https://observablehq.com/release-notes/2025-04-15-deprecating-observable-cloud" |
| 94 | )}`, |
| 95 | effects.outputColumns |
| 96 | ) |
| 97 | ); |
| 98 | const deployInfo = await new Deployer(deployOptions, effects).deploy(); |
| 99 | effects.clack.outro(`Deployed app now visible at ${link(deployInfo.url)}`); |
| 100 | Telemetry.record({event: "deploy", step: "finish"}); |
| 101 | } |
| 102 | |
| 103 | class Deployer { |
| 104 | private deployOptions: DeployOptions; |