diff --git a/package.json b/package.json index fc45566..ed40091 100644 --- a/package.json +++ b/package.json @@ -8,10 +8,13 @@ "build": "node scripts/generate-static-data.js && next build", "start": "next start", "lint": "eslint .", + "prebuild:cloudflare": "scripts/preview-alias.sh", "build:cloudflare": "node scripts/generate-static-data.js && opennextjs-cloudflare build", "preview": "node scripts/generate-static-data.js && opennextjs-cloudflare build && opennextjs-cloudflare preview", "deploy": "node scripts/generate-static-data.js && opennextjs-cloudflare build && opennextjs-cloudflare deploy", - "cf-typegen": "wrangler types --env-interface CloudflareEnv cloudflare-env.d.ts" + "cf-typegen": "wrangler types --env-interface CloudflareEnv cloudflare-env.d.ts", + "preview-alias": "scripts/preview-alias.sh", + "deploy:preview": "node scripts/generate-static-data.js && opennextjs-cloudflare build && wrangler versions upload --preview-alias \"$(scripts/preview-alias.sh)\"" }, "dependencies": { "@opennextjs/cloudflare": "^1.2.1", diff --git a/scripts/preview-alias.sh b/scripts/preview-alias.sh new file mode 100755 index 0000000..b994553 --- /dev/null +++ b/scripts/preview-alias.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash +set -euo pipefail + +raw_ref="${1:-${GITHUB_HEAD_REF:-${GITHUB_REF_NAME:-${BRANCH_NAME:-}}}}" + +if [[ -z "$raw_ref" || "$raw_ref" == "HEAD" ]]; then + raw_ref="preview" +fi + +alias=$(echo "$raw_ref" \ + | tr '[:upper:]' '[:lower:]' \ + | sed -E 's/[^a-z0-9-]+/-/g; s/^-+//; s/-+$//') + +if [[ -z "$alias" ]]; then + alias="preview" +fi + +alias=$(echo "$alias" | cut -c1-40) + +printf '%s\n' "$alias" diff --git a/wrangler.toml b/wrangler.toml index 9fc93d3..01e2830 100644 --- a/wrangler.toml +++ b/wrangler.toml @@ -2,7 +2,8 @@ main = ".open-next/worker.js" name = "website-v1" compatibility_date = "2025-03-25" compatibility_flags = ["nodejs_compat"] +preview_urls = true [assets] directory = ".open-next/assets" -binding = "ASSETS" \ No newline at end of file +binding = "ASSETS"