From 429f331c212d598b0d7ff44f20f75cf007bcf32b Mon Sep 17 00:00:00 2001
From: Jacky Zhao <j.zhao2k19@gmail.com>
Date: Thu, 03 Aug 2023 03:53:13 +0000
Subject: [PATCH] make ci also run on windows, re-add css minification

---
 quartz/build.ts           |   12 +++++++-----
 .github/workflows/ci.yaml |    2 +-
 quartz/bootstrap-cli.mjs  |   11 ++++++++++-
 3 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index 41c6023..8960865 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -7,7 +7,7 @@
 
 jobs:
   build-and-test:
-    runs-on: ubuntu-22.04
+    runs-on: [windows-latest, macos-13, ubuntu-22.04]
     permissions:
       contents: write
     steps:
diff --git a/quartz/bootstrap-cli.mjs b/quartz/bootstrap-cli.mjs
index 75f646b..0bf27aa 100755
--- a/quartz/bootstrap-cli.mjs
+++ b/quartz/bootstrap-cli.mjs
@@ -11,7 +11,7 @@
 import { rimraf } from "rimraf"
 import prettyBytes from "pretty-bytes"
 import { spawnSync } from "child_process"
-import { transform } from "lightningcss"
+import { transform as cssTransform } from "lightningcss"
 
 const UPSTREAM_NAME = "upstream"
 const QUARTZ_SOURCE_BRANCH = "v4-alpha"
@@ -115,6 +115,7 @@
 }
 
 async function popContentFolder(contentFolder) {
+  await fs.promises.rm(contentFolder, { force: true, recursive: true })
   await fs.promises.cp(contentCacheFolder, contentFolder, {
     force: true,
     recursive: true,
@@ -304,6 +305,14 @@
           sassPlugin({
             type: "css-text",
             cssImports: true,
+            async transform(css) {
+              const { code } = cssTransform({
+                filename: "style.css",
+                code: Buffer.from(css),
+                minify: true,
+              })
+              return code.toString()
+            },
           }),
           {
             name: "inline-script-loader",
diff --git a/quartz/build.ts b/quartz/build.ts
index 093025a..9bd1e67 100644
--- a/quartz/build.ts
+++ b/quartz/build.ts
@@ -42,11 +42,13 @@
   console.log(`Cleaned output directory \`${output}\` in ${perf.timeSince("clean")}`)
 
   perf.addEvent("glob")
-  const fps = (await globby("**/*.md", {
-    cwd: argv.directory,
-    ignore: cfg.configuration.ignorePatterns,
-    gitignore: true,
-  })).map(fp => fp.split(path.sep).join(path.posix.sep))
+  const fps = (
+    await globby("**/*.md", {
+      cwd: argv.directory,
+      ignore: cfg.configuration.ignorePatterns,
+      gitignore: true,
+    })
+  ).map((fp) => fp.split(path.sep).join(path.posix.sep))
   console.log(
     `Found ${fps.length} input files from \`${argv.directory}\` in ${perf.timeSince("glob")}`,
   )

--
Gitblit v1.10.0