run_local_ci.sh 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. #!/bin/bash
  2. set -euo pipefail
  3. # 本地一键 CI(模拟 ci-pr)。
  4. # 执行顺序:
  5. # 先跑 full 单元矩阵(8 组),再跑 quick fuzz(1 组默认语义)。
  6. # 默认参数与 ci-pr.yml 对齐:
  7. # unit: UNIT_MODE=full, UNIT_SKIP_COV=1
  8. # fuzz: FUZZ_MODE=quick, FUZZ_SKIP_COV=1, FUZZ_MAX_TOTAL_TIME=45, workers/jobs=2
  9. # fuzz 阶段参数可用同名环境变量临时覆盖。
  10. scriptDir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
  11. cd "${scriptDir}"
  12. echo "===================================================="
  13. echo "本地 CI 启动:阶段 1/2 -> Base 单元测试"
  14. echo "===================================================="
  15. bash ./run_local_base.sh
  16. echo "===================================================="
  17. echo "本地 CI 启动:阶段 2/2 -> Fuzz quick"
  18. echo "===================================================="
  19. RYANJSON_STRICT_OBJECT_KEY_CHECK="${RYANJSON_STRICT_OBJECT_KEY_CHECK:-false}" \
  20. RYANJSON_DEFAULT_ADD_AT_HEAD="${RYANJSON_DEFAULT_ADD_AT_HEAD:-true}" \
  21. RYANJSON_SNPRINTF_SUPPORT_SCIENTIFIC="${RYANJSON_SNPRINTF_SUPPORT_SCIENTIFIC:-true}" \
  22. FUZZ_MODE="${FUZZ_MODE:-quick}" \
  23. FUZZ_SKIP_COV="${FUZZ_SKIP_COV:-1}" \
  24. FUZZ_MAX_TOTAL_TIME="${FUZZ_MAX_TOTAL_TIME:-45}" \
  25. FUZZ_WORKERS="${FUZZ_WORKERS:-2}" \
  26. FUZZ_JOBS="${FUZZ_JOBS:-2}" \
  27. XMAKE_FORCE_CLEAN="${XMAKE_FORCE_CLEAN:-0}" \
  28. bash ./scripts/ci/runCoverage.sh
  29. echo "===================================================="
  30. echo "本地 CI 执行完成"
  31. echo "===================================================="