release-check.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. 'use strict';
  2. const fs = require('fs');
  3. const os = require('os');
  4. const path = require('path');
  5. const { spawnSync } = require('child_process');
  6. const ROOT = path.resolve(__dirname, '..');
  7. const tempRoot = fs.mkdtempSync(path.join(os.tmpdir(), 'qiwei-release-check-'));
  8. const outputsDir = path.join(tempRoot, 'outputs');
  9. const npmCli = process.env.npm_execpath || path.join(path.dirname(process.execPath), 'node_modules', 'npm', 'bin', 'npm-cli.js');
  10. const checks = [
  11. 'check',
  12. 'runtime:smoke',
  13. 'runtime:reliability-smoke',
  14. 'voice:smoke',
  15. 'voice:token-smoke',
  16. 'group-ops:check',
  17. 'group-ops:smoke',
  18. 'group-ops:eval',
  19. 'group-ops:auto-smoke',
  20. 'group-ops:access-smoke',
  21. 'diagnosis:smoke',
  22. 'diagnosis-actions:smoke',
  23. 'smoke',
  24. 'agent:quality-smoke',
  25. 'agent:sales-move-smoke',
  26. 'agent:conversation-journey-smoke',
  27. 'agent:future-promise-smoke',
  28. 'agent:concurrency-smoke',
  29. 'agent:smoke',
  30. 'agent:session-first-smoke',
  31. 'knowledge:crud-smoke',
  32. 'knowledge:ui-smoke',
  33. 'library:smoke',
  34. 'mcp:smoke',
  35. 'excel:smoke',
  36. 'outputs:validate',
  37. 'install:check',
  38. 'package:smoke',
  39. 'audit:prod',
  40. ];
  41. try {
  42. for (const check of checks) {
  43. const result = spawnSync(process.execPath, [npmCli, 'run', check], {
  44. cwd: ROOT,
  45. env: {
  46. ...process.env,
  47. QIWEI_OUTPUTS_DIR: outputsDir,
  48. QIWEI_AGENT_DB_PATH: path.join(outputsDir, 'messages', 'agent-workbench.db'),
  49. QIWEI_DISABLE_RELAY: '1',
  50. },
  51. stdio: 'inherit',
  52. windowsHide: true,
  53. });
  54. if (result.error) throw result.error;
  55. if (result.status !== 0) process.exit(result.status || 1);
  56. }
  57. process.stdout.write(`\n发布检查通过:${checks.length} 组检查均已完成,测试输出已隔离。\n`);
  58. } finally {
  59. fs.rmSync(tempRoot, { recursive: true, force: true });
  60. }