chore: move env examples to env-example/ and unify CDN env source

- Reorganize env example files into a dedicated env-example/ directory for clarity
- Update .gitignore to ignore env files (with examples now in env-example/)
- Unify CDN credentials (CF_ZONE_ID / CF_API_TOKEN) to be sourced from .env.local in both test and production deploys
- Update git_hooks/post-receive to copy production env example from new location
- Update deploy scripts (pre_release_web.sh, release_web.sh) to copy the appropriate env example into .env.local before building
- Update _deploy_lib.sh purge_cdn_cache to source from .env.local instead of .env
This commit is contained in:
2026-06-12 15:05:37 +08:00
parent 05674264b8
commit d76b048bb9
8 changed files with 15 additions and 12 deletions
+1 -6
View File
@@ -30,16 +30,11 @@ yarn-debug.log*
yarn-error.log* yarn-error.log*
.pnpm-debug.log* .pnpm-debug.log*
# env files (can opt-in for committing if needed) # env files
.env .env
.env.local .env.local
.env.development .env.development
.env.test
.env.production .env.production
!.env.example
!.env.development.example
!.env.test.example
!.env.production.example
# deploy archives (scripts/deploy/_deploy_lib.sh 的 archive() 生成) # deploy archives (scripts/deploy/_deploy_lib.sh 的 archive() 生成)
archives/ archives/
+2 -2
View File
@@ -8,7 +8,7 @@
# - 内部 = `npm run build && npm run start` # - 内部 = `npm run build && npm run start`
# - 实际调用 `pnpm run build:start`(项目使用 pnpm # - 实际调用 `pnpm run build:start`(项目使用 pnpm
# 准备生产环境变量(从 .env.production.example 复制 → .env.production # 准备生产环境变量(从 env-example/.env.production.example 复制 → .env.production
cp -f .env.production.example .env.production cp -f env-example/.env.production.example .env.production
pnpm run build:start pnpm run build:start
+4 -4
View File
@@ -87,14 +87,14 @@ bump_version() {
} }
# 清除 Cloudflare CDN 缓存 # 清除 Cloudflare CDN 缓存
# 凭据从 .env / .env.local 读(CF_ZONE_ID / CF_API_TOKEN # 凭据从 .env.local 读(CF_ZONE_ID / CF_API_TOKEN
purge_cdn_cache() { purge_cdn_cache() {
# 从 .env 读 CDN 凭据(Next.js 不读取,bash 直接 source # 从 .env.local 读 CDN 凭据(Next.js 不读取,bash 直接 source
if [ -f .env ]; then if [ -f .env.local ]; then
# shell 解析 KEY=VALUE(忽略注释 / 引号) # shell 解析 KEY=VALUE(忽略注释 / 引号)
set -a set -a
# shellcheck disable=SC1091 # shellcheck disable=SC1091
source .env 2>/dev/null || true source .env.local 2>/dev/null || true
set +a set +a
fi fi
+4
View File
@@ -18,6 +18,10 @@ cp -f icons/test/favicon.ico public/favicon.ico
cp -f icons/test/icons/Icon-192.png public/images/icons/Icon-192.png cp -f icons/test/icons/Icon-192.png public/images/icons/Icon-192.png
cp -f icons/test/icons/Icon-512.png public/images/icons/Icon-512.png cp -f icons/test/icons/Icon-512.png public/images/icons/Icon-512.png
# 准备测试环境变量(env-example/.env.local.example → .env.local,供 purge_cdn_cache 读 CDN 凭据)
echo "=== 准备测试环境变量(env-example/.env.local.example → .env.local ==="
cp -f env-example/.env.local.example .env.local
echo "=== 执行构建部署脚本(测试环境)===" echo "=== 执行构建部署脚本(测试环境)==="
./scripts/deploy/deploy_web_test.sh ./scripts/deploy/deploy_web_test.sh
+4
View File
@@ -18,6 +18,10 @@ cp -f icons/production/favicon.ico public/favicon.ico
cp -f icons/production/icons/Icon-192.png public/images/icons/Icon-192.png cp -f icons/production/icons/Icon-192.png public/images/icons/Icon-192.png
cp -f icons/production/icons/Icon-512.png public/images/icons/Icon-512.png cp -f icons/production/icons/Icon-512.png public/images/icons/Icon-512.png
# 准备生产环境变量(env-example/.env.production.example → .env.local,供 purge_cdn_cache 读 CDN 凭据)
echo "=== 准备生产环境变量(env-example/.env.production.example → .env.local ==="
cp -f env-example/.env.production.example .env.local
echo "=== 执行构建部署脚本 ===" echo "=== 执行构建部署脚本 ==="
./scripts/deploy/deploy_web.sh ./scripts/deploy/deploy_web.sh