From 1b810610a2982e7df00bfac01b4802a2b7dbd537 Mon Sep 17 00:00:00 2001 From: ArmoryNode <22787155+ArmoryNode@users.noreply.github.com> Date: Thu, 23 Jan 2025 10:39:23 -0800 Subject: [PATCH 1/2] Actually fixed the deployment --- .github/workflows/build-and-deploy.yaml | 2 +- build.ts | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-and-deploy.yaml b/.github/workflows/build-and-deploy.yaml index 050e08f..02e8f47 100644 --- a/.github/workflows/build-and-deploy.yaml +++ b/.github/workflows/build-and-deploy.yaml @@ -60,4 +60,4 @@ jobs: with: apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} - command: pages deploy --project-name=armorynodewebsite + command: pages deploy static --project-name=armorynodewebsite diff --git a/build.ts b/build.ts index 7e96b37..d2f191b 100644 --- a/build.ts +++ b/build.ts @@ -50,6 +50,11 @@ async function compileSass(retries: number = 0) { } } +// Only run if the script is run directly, not imported as a module +if (import.meta.main) { + await compile(); +} + export async function compile() { try { console.log("🎨 Compiling Sass..."); From a183509255298db7d85956c3fe733657ddedb2db Mon Sep 17 00:00:00 2001 From: ArmoryNode <22787155+ArmoryNode@users.noreply.github.com> Date: Thu, 23 Jan 2025 14:14:38 -0800 Subject: [PATCH 2/2] Fixed build script --- build.ts | 74 ++++++++++++++++++++++++-------------------------------- 1 file changed, 31 insertions(+), 43 deletions(-) diff --git a/build.ts b/build.ts index d2f191b..be3dc98 100644 --- a/build.ts +++ b/build.ts @@ -2,9 +2,20 @@ import { compileToString as ElmCompile } from "https://deno.land/x/deno_elm_comp import { minify } from "npm:terser"; import * as sass from "npm:sass"; -const maxRetries = 3; +async function createDirectories() { + await Deno.mkdir("./static/css", { recursive: true }).catch(error => { + if (error instanceof Deno.errors.AlreadyExists) + return; + throw error; + }); + await Deno.mkdir("./static/js", { recursive: true }).catch(error => { + if (error instanceof Deno.errors.AlreadyExists) + return; + throw error; + }); +} -async function compileAndMinifyElm(retries: number = 0) { +async function compileAndMinifyElm() { try { const compiledJs = await ElmCompile("./src/Main.elm", { mode: "optimize" }); const minifiedJs = await minify(compiledJs); @@ -14,40 +25,20 @@ async function compileAndMinifyElm(retries: number = 0) { if (error.message.includes("Failed to spawn 'elm': entity not found")) { throw "Elm is not installed. Please install Elm from https://guide.elm-lang.org/install/"; } - - Deno.mkdir("./static/js", { recursive: true }); - - if (retries < maxRetries) { - compileAndMinifyElm(retries + 1); - } else { - console.error("Failed to compile Elm after 3 retries"); - } } throw error; } } -async function compileSass(retries: number = 0) { - try { - const compiledCss = sass.compile("./src/assets/styles/main.scss", { - style: "compressed", - sourceMap: false - }); - await Deno.writeTextFile("./static/css/main.min.css", compiledCss.css); - } catch (error) { - if (error instanceof Deno.errors.NotFound) { - Deno.mkdir("./static/css", { recursive: true }); - - if (retries < maxRetries) { - compileSass(retries + 1); - } else { - console.error("Failed to compile Sass after 3 retries"); - } - } - - throw error; - } +async function compileSass() { + const compiledCss = sass.compile("./src/assets/styles/main.scss", { + style: "compressed", + sourceMap: false + }); + await Deno.writeTextFile("./static/css/main.min.css", compiledCss.css, { + create: true + }); } // Only run if the script is run directly, not imported as a module @@ -56,16 +47,13 @@ if (import.meta.main) { } export async function compile() { - try { - console.log("🎨 Compiling Sass..."); - await compileSass(); - - console.log("🌳 Compiling Elm..."); - await compileAndMinifyElm(); - - console.log("✅ Done!"); - } catch (error) { - console.log(error); - Deno.exit(1); - } -} \ No newline at end of file + await createDirectories(); + + console.log("🎨 Compiling Sass..."); + await compileSass(); + + console.log("🌳 Compiling Elm..."); + await compileAndMinifyElm(); + + console.log("✅ Done!"); +}