Exclude hidden assets from builds and record deployment checks
showcase/deploy Live at https://showcase.andrefiedler.de/2608_BuB/

This commit is contained in:
André Fiedler
2026-09-07 17:32:00 +02:00
parent 0712615dfa
commit 4f64b3eda7
2 changed files with 14 additions and 2 deletions
+9 -1
View File
@@ -12,4 +12,12 @@ Local checks on 2026-09-07:
- Syntax checks pass for both `.mjs` files. Local asset references, unique IDs, fragment links, JSON-LD, sitemap XML, manifest icons and production-file exclusions pass. - Syntax checks pass for both `.mjs` files. Local asset references, unique IDs, fragment links, JSON-LD, sitemap XML, manifest icons and production-file exclusions pass.
- `npm run build` produces an approximately 807 kB static artifact, including social-preview and icon assets that are not requested during normal page rendering. - `npm run build` produces an approximately 807 kB static artifact, including social-preview and icon assets that are not requested during normal page rendering.
For each published revision, check the `showcase/deploy` status on its Gitea commit and compare the served files with `dist`. The repository is public by request. The organization listing is public so anonymous visitors can access it; the existing `hello-world` and `vite-example` repositories retain their private visibility. Deployment checks on 2026-09-07:
- The `showcase/deploy` status succeeded for the initial publication on `main`.
- The exact HTTPS route `https://showcase.andrefiedler.de/2608_BuB/` returns HTTP 200.
- All 22 public files match the local build byte for byte, including JavaScript modules, fonts, favicon assets, sitemap and manifest.
- Design originals, preparation scripts, Git configuration and Finder metadata return HTTP 404 on the deployed site.
- The build excludes hidden files in asset directories.
For each published revision, check the `showcase/deploy` status on its Gitea commit and compare the served files with `dist`.
+5 -1
View File
@@ -1,5 +1,6 @@
import { cp, mkdir, rm } from 'node:fs/promises'; import { cp, mkdir, rm } from 'node:fs/promises';
import { fileURLToPath } from 'node:url'; import { fileURLToPath } from 'node:url';
import { basename } from 'node:path';
const root = new URL('../', import.meta.url); const root = new URL('../', import.meta.url);
const output = new URL('dist/', root); const output = new URL('dist/', root);
@@ -8,6 +9,9 @@ const publicFiles = ['index.html', 'assets', 'favicon.ico', 'favicon.svg', 'site
await rm(output, { recursive: true, force: true }); await rm(output, { recursive: true, force: true });
await mkdir(output, { recursive: true }); await mkdir(output, { recursive: true });
for (const filename of publicFiles) { for (const filename of publicFiles) {
await cp(new URL(filename, root), new URL(filename, output), { recursive: true }); await cp(new URL(filename, root), new URL(filename, output), {
recursive: true,
filter: (source) => !basename(source).startsWith('.'),
});
} }
console.log(`Static site built at ${fileURLToPath(output)}`); console.log(`Static site built at ${fileURLToPath(output)}`);