zhangxiang
529bdd33c4
feat(test): add test coverage analysis script and user journey coverage matrix
2026-04-09 19:19:28 +08:00
张翔
042f66499a
fix: complete test suite fixes - achieve 99.8% pass rate
...
- Add missing lucide-react icons (Users, Target, MessageCircle, Layers, CreditCard)
- Fix admin/page.test.tsx ESLint errors (add displayName)
- Fix api/contact/route.test.ts ESLint errors (remove any types, use import)
- Add RESEND_API_KEY environment variable for API tests
- All 122 test suites now passing
- Test pass rate: 99.8% (1499/1502 passed, 3 skipped)
2026-04-09 17:33:21 +08:00
张翔
6e43f446aa
fix(ci): 使用独立脚本处理archive操作,彻底解决YAML引号问题
...
ci/woodpecker/push/woodpecker Pipeline failed
根本原因:
archive-to-main步骤中仍有大量使用单引号的命令,包含双引号嵌套,
导致Woodpecker CI解析失败。
解决方案:
1. 创建scripts/archive-to-main.sh脚本封装所有archive操作
2. 简化.woodpecker.yml中的archive-to-main步骤为调用脚本
3. 彻底避免YAML引号嵌套问题
优势:
- 完全避免YAML引号问题
- 脚本更易维护和调试
- 清晰的职责分离
2026-04-01 11:09:37 +08:00
张翔
2b1b105caa
fix(ci): 使用独立脚本处理rsync同步,避免YAML引号问题
...
ci/woodpecker/push/woodpecker Pipeline failed
根本原因:
Woodpecker CI在处理包含双引号的YAML字符串时存在引号处理问题,
导致shell接收到格式错误的命令,出现'unterminated quoted string'错误。
解决方案:
1. 创建scripts/sync-to-production.sh脚本封装所有rsync操作
2. 在.woodpecker.yml中调用脚本而非直接写复杂命令
3. 简化ssh命令中的条件判断语法
优势:
- 避免YAML引号嵌套问题
- 脚本更易维护和调试
- 清晰的部署流程分离
2026-04-01 10:56:54 +08:00
张翔
3ce31d3178
feat: 优化CI/CD流程 - 自定义工具镜像、修复TLS问题、添加镜像清理脚本
...
ci/woodpecker/push/woodpecker Pipeline failed
- 创建轻量级工具镜像(novalon/tools:1.0.0)避免重复安装工具
- 修复Docker TLS handshake timeout问题
- 更新CI配置使用registry.f.novalon.cn/novalon/tools:1.0.0
- 添加自动清理脚本用于磁盘和镜像管理
2026-03-31 17:27:43 +08:00
张翔
a4fd907add
fix(ci): 优化Woodpecker CI配置,增强SSH连接和Git操作可靠性
...
ci/woodpecker/push/woodpecker Pipeline failed
- 增强SSH连接测试,添加timeout和BatchMode参数
- 改进网络连通性检查,使用dig替代nslookup
- 分步骤执行Git归档操作,每一步都有错误检查
- 增强错误处理和日志输出,便于问题诊断
- 添加CICD配置验证脚本
2026-03-30 20:59:11 +08:00
张翔
4a2d5dc385
fix: 修复CI pipeline #78的SSH认证问题
...
ci/woodpecker/push/woodpecker Pipeline failed
- 修复.woodpecker.yml中的YAML语法错误
- 增强archive-to-main步骤的调试信息
- 添加Docker环境诊断脚本
- 优化SSH连接测试和错误处理
2026-03-30 20:38:58 +08:00
张翔
ec33aedd79
fix(docker): adapt Dockerfile.prod for Next.js 16 standalone output structure
...
ci/woodpecker/push/woodpecker Pipeline failed
- Fix standalone path: dist/standalone/novalon-website/
- Update static files path: dist/static
- Replace curl with wget in health checks (Alpine compatibility)
- Add monitoring and optimization scripts
- Configure external network for docker-compose
This resolves the deployment failure caused by Next.js 16's new standalone output structure.
2026-03-30 09:04:51 +08:00
张翔
bd87cdf0e6
fix(deploy): 修复生产环境容器启动失败问题
...
ci/woodpecker/push/woodpecker Pipeline failed
问题:
1. Dockerfile.prod目录结构错误
- standalone路径不正确
- static文件路径错误
2. docker-compose.server.yml网络配置问题
- external网络可能不存在
3. 健康检查命令不可用
- alpine镜像缺少wget
修复:
1. Dockerfile.prod
- 正确复制standalone目录内容
- 将static文件复制到.next/static/
- 安装curl用于健康检查
2. docker-compose.server.yml
- 移除external网络依赖
- 使用curl进行健康检查
3. deploy-production.sh
- 使用curl替代wget
- 备份包含Dockerfile.prod和docker-compose.server.yml
2026-03-29 19:44:43 +08:00
张翔
ffa4705b18
feat(ci): 重构部署流程 - 同步构建产物到生产服务器
...
ci/woodpecker/push/woodpecker Pipeline failed
重大变更:
- 移除CI/CD中的Docker镜像构建和推送
- 改为在CI中构建产物,通过rsync同步到生产服务器
- 生产服务器本地构建镜像并部署
新增文件:
- Dockerfile.prod: 生产服务器专用Dockerfile
- docker-compose.server.yml: 生产服务器docker-compose配置
- scripts/deploy-production.sh: 生产服务器部署脚本
优势:
1. 减少CI/CD服务器负载(无需构建镜像)
2. 加快部署速度(直接同步产物)
3. 降低镜像仓库存储成本
4. 生产服务器可自主控制构建和部署
2026-03-29 17:24:40 +08:00
张翔
7cbb7a9ac8
fix(test): 修复测试环境问题
...
ci/woodpecker/push/woodpecker Pipeline failed
1. jest.setup.js:
- 添加 Request/Response/Headers 全局对象 mock
- 解决 'Request is not defined' 错误
2. .eslintrc.json:
- 将 jest.setup.js 添加到忽略列表
3. shared-mocks.tsx:
- 添加 ArrowUp 图标 mock
4. back-to-top.test.tsx:
- 重写测试使用 import 语法
- 使用 fireEvent.scroll 触发滚动事件
- 修复组件渲染测试
2026-03-29 14:50:09 +08:00
张翔
1e101183ca
fix: 修复Woodpecker CI配置解析错误
...
ci/woodpecker/push/woodpecker Pipeline failed
问题根本原因:
- YAML heredoc块格式导致解析器无法正确识别命令类型
- Pipeline #30 显示 'No pipeline steps available' 错误
修复方案:
- 将企业微信通知逻辑移至独立脚本文件 scripts/notify-wechat.sh
- 简化 .woodpecker.yml 中的通知步骤配置
- 使用标准shell脚本处理环境变量展开
验证:
- YAML语法验证通过
- 命令类型检查通过(所有命令均为字符串类型)
2026-03-29 08:54:06 +08:00
张翔
34ce9fb968
fix: 修复CI/CD流程问题并建立监控机制
...
- 禁用Git LFS(项目未使用LFS)
- 修复企业微信通知环境变量展开问题
- 创建CI/CD诊断脚本
- 建立持续监控机制
- 添加预防措施文档
问题根本原因:
1. Woodpecker CI Git插件默认启用LFS,导致不必要的LFS命令执行
2. Shell脚本heredoc块内变量展开时机问题导致环境变量丢失
修复方案:
1. 在clone配置中添加 lfs: false
2. 将环境变量赋值移到单独的命令行,heredoc仅用于生成JSON
验证方法:
- 运行 diagnose-cicd-issues.sh 进行诊断
- 运行 scripts/monitoring/cicd-monitor.sh 进行监控
2026-03-29 08:48:31 +08:00
张翔
d19c290365
fix: 使用 cat heredoc 方法修复企业微信通知环境变量展开
...
ci/woodpecker/push/woodpecker Pipeline failed
- 使用 cat > file <<EOF 替代其他方法
- 确保环境变量在 heredoc 中正确展开
- 本地测试验证成功
2026-03-29 08:03:19 +08:00
张翔
dd2a0999bb
fix: 修复企业微信通知环境变量展开问题
...
ci/woodpecker/push/woodpecker Pipeline failed
- 使用 PAYLOAD=$(cat <<ENDPAYLOAD) 替代 cat > file <<EOF
- 确保环境变量在 heredoc 中正确展开
- 添加测试脚本验证环境变量展开
- 修复构建详情链接和消息内容缺失问题
2026-03-28 22:48:22 +08:00
张翔
5a27d2fc2a
feat: 添加企业微信通知本地测试脚本
...
ci/woodpecker/push/woodpecker Pipeline failed
- 支持在本地测试企业微信通知功能
- 显示生成的 JSON 内容和响应结果
- 方便调试和验证通知配置
2026-03-28 22:29:16 +08:00
张翔
6797a1ee2d
feat: 添加 Woodpecker CI 本地测试工具
...
ci/woodpecker/push/woodpecker Pipeline failed
- validate-woodpecker.sh: 全面验证配置文件
- test-step.sh: 单步测试工具,支持 Docker 隔离环境
- README.md: 详细使用文档和最佳实践
这些工具可以在本地验证和测试 CI/CD 配置,避免通过持续提交来测试
2026-03-28 22:24:46 +08:00
张翔
a003f1192e
feat(ui/ux): 优化用户体验和可访问性
...
- 字体加载优化: 添加 font-display: block 策略,创建 useFontLoading hook
- 色彩对比度: 调整 text-muted 和 text-tertiary 颜色值确保 WCAG AA 合规
- 滚动进度条: 新增 ScrollProgress 组件,支持 reduced motion
- 表单自动保存: 新增 useFormAutosave hook,防止用户数据丢失
- 返回顶部按钮: 新增 BackToTop 组件,提升长页面导航体验
- 图片懒加载: 优化 OptimizedImage 组件,添加 blur placeholder 和加载动画
所有新组件均包含完整测试,1450+ 测试通过
2026-03-28 11:21:04 +08:00
张翔
ebaa7f3c50
fix: 修复Woodpecker CI配置文件中的linter错误
...
ci/woodpecker/manual/woodpecker Pipeline was successful
- 移除未使用的YAML锚点定义
- 替换commands字段中的锚点引用为实际值
- 移除有问题的通知步骤
- 修复测试文件中的问题
- 添加新的测试用例和配置文件
2026-03-28 09:42:45 +08:00
张翔
7a38eae6e0
chore: 删除e2e测试相关的初始化文件和快照文件
...
清理不再需要的测试初始化文件和视觉回归测试的快照文件,以保持代码库整洁
2026-03-27 09:56:57 +08:00
张翔
498bb3a3c8
refactor: reorganize project structure and improve code quality
...
- Move CI/CD configs to config/ci/ directory
- Reorganize scripts into categorized directories (deployment, monitoring, testing, utils)
- Consolidate documentation into docs/ directory with proper structure
- Update linting and testing configurations
- Remove obsolete test reports and performance summaries
- Add new documentation for code quality tools and contact form security
- Improve project organization and maintainability
- Fix lint-staged config to only lint JS/TS files
- Disable react/react-in-jsx-scope rule for Next.js compatibility
- Ignore scripts and test config directories in ESLint
2026-03-24 13:38:58 +08:00
张翔
4fdfc2d8b4
feat: implement frontend-backend configuration linkage
...
- Create public config API for frontend consumption
- Add configuration fetching to homepage
- Implement module show/hide logic based on config
- Add support for Services items filtering
- Add support for Products featured products and pricing display
- Add support for News display count, categories, and sort order
- Fix table name from 'configs' to 'siteConfig' in API route
- Update type definitions for proper TypeScript support
2026-03-13 13:11:20 +08:00
张翔
5bc8356a37
fix: resolve HMR error and TypeScript build issues
...
- Disable all experimental features to fix React 19 and Next.js 16 compatibility
- Fix TypeScript error in check-permission.ts (role property issue)
- Add test script for Contact page validation
- Use production mode to avoid HMR issues completely
2026-03-13 12:25:42 +08:00
张翔
b026d2b2ab
fix: resolve React 19 and Next.js 16 HMR compatibility issue
2026-03-13 12:13:43 +08:00
张翔
ca4342d81d
fix: resolve TypeScript compilation error and add verification script
2026-03-13 12:05:00 +08:00
张翔
b86ca1f428
feat: add Woodpecker CI configuration for tiered testing
2026-03-13 11:52:32 +08:00
张翔
e8dffa4f05
chore: remove GitHub Actions workflows, use Woodpecker CI exclusively
2026-03-10 13:10:11 +08:00
张翔
3991b34841
ci: add coverage trend monitoring
2026-03-10 12:45:56 +08:00
张翔
4ece85a9c3
feat: 添加生产环境部署和监控配置
...
- 新增生产环境部署脚本和文档
- 添加监控系统配置(Alertmanager, Prometheus, Grafana)
- 更新e2e测试用例以适配新环境
- 添加.env.production配置文件
- 优化Sentry初始化逻辑为动态加载
- 新增全局设置脚本以支持不同环境
2026-03-09 16:37:23 +08:00
张翔
4897c6e11c
feat: 建立监控告警体系和生产环境配置
...
阶段三:建立监控告警体系
- 集成Sentry错误监控:安装依赖,创建配置文件,初始化Sentry
- 配置性能监控:创建监控工具类,实现健康检查API
- 更新环境变量模板,添加Sentry和数据库配置
阶段四:配置生产环境
- 创建生产环境变量模板
- 创建Dockerfile和docker-compose.prod.yml
- 创建备份和恢复脚本
- 设置脚本执行权限
2026-03-09 11:00:42 +08:00
张翔
6d92024b63
feat: 修复测试套件问题并添加Woodpecker CI配置
...
- 修复API测试认证问题:创建全局认证设置,更新Playwright配置
- 优化回归测试稳定性:增加超时时间到15秒,修复定位器
- 创建Woodpecker CI工作流:CI、部署和质量门禁配置
- 添加Jest配置和测试脚本
- 移除登录页面的默认账号密码显示(安全问题修复)
2026-03-09 10:26:02 +08:00
张翔
724cd7f27a
chore: add color contrast testing scripts and update dependencies
2026-03-07 10:46:27 +08:00
张翔
336802d65a
feat: add heading hierarchy checker script and npm script
2026-03-06 20:54:34 +08:00
张翔
cbbc6e8824
feat: add color contrast checking script for CI/CD
...
- Added scripts/check-color-contrast.ts to validate WCAG AA compliance
- Added npm script 'check:contrast' for easy execution
- Validates 7 critical color pairs
- All color combinations now pass WCAG AA 4.5:1 standard
2026-03-06 20:25:52 +08:00
张翔
4c8714c12d
feat: complete system test fixes - 100% pass rate (85/85)
...
- Fixed all form tests (20/20 passing)
- Fixed all performance tests (35/35 passing)
- Fixed all SEO and accessibility tests (30/30 passing)
- Enhanced test framework with custom reporting
- Added performance baseline tracking
- Improved test reliability and error handling
2026-03-06 19:37:02 +08:00
张翔
33568b38a4
chore: remove old scripts directory (backed up to scripts.backup)
2026-03-06 12:55:55 +08:00
张翔
71560b016b
fix: correct lighthouse result structure access
2026-03-06 11:24:51 +08:00
张翔
db992cf4fb
fix: correct lighthouse and chrome-launcher imports
2026-03-06 11:22:19 +08:00
张翔
4036b286a0
fix: add missing fs and path imports to scripts
2026-03-06 10:19:22 +08:00
张翔
54bdafa47f
fix: correct score calculation in accessibility test
2026-03-06 10:17:49 +08:00
张翔
e82f5b26aa
fix: use browser.newContext() for axe-core/playwright compatibility
2026-03-06 10:17:09 +08:00
张翔
755e0889a5
docs: add testing scripts documentation
2026-03-06 10:12:53 +08:00
张翔
614fa8f85e
feat: add one-click test runner script
2026-03-06 10:09:44 +08:00
张翔
dc41aaf04e
feat: add comprehensive test report generator
2026-03-06 10:09:04 +08:00
张翔
7e023f0bf1
feat: add form validation testing script
2026-03-06 10:07:52 +08:00
张翔
4b84f28065
feat: add accessibility testing script with axe-core
2026-03-06 10:05:10 +08:00
张翔
2202d4045b
feat: add SEO validation script
2026-03-06 10:04:06 +08:00
张翔
0bedc7e023
feat: add performance audit script with Lighthouse
2026-03-06 10:02:58 +08:00