check_build.py 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. """
  4. 检查构建结果脚本
  5. 用于GitHub Actions中验证构建是否成功
  6. """
  7. import os
  8. import json
  9. from pathlib import Path
  10. def check_build_results():
  11. """检查构建结果"""
  12. print("=== 检查生成的文档 ===")
  13. # 检查构建目录
  14. build_dir = Path("_build")
  15. if not build_dir.exists():
  16. print("✗ 构建目录不存在")
  17. return False
  18. # 检查版本目录
  19. versions_dir = build_dir / "versions"
  20. if not versions_dir.exists():
  21. print("✗ 版本目录不存在")
  22. return False
  23. print("✓ 版本目录存在")
  24. # 检查各个版本
  25. version_dirs = [d for d in versions_dir.iterdir() if d.is_dir()]
  26. if not version_dirs:
  27. print("✗ 没有找到版本目录")
  28. return False
  29. print(f"✓ 找到 {len(version_dirs)} 个版本目录")
  30. for version_dir in version_dirs:
  31. version_name = version_dir.name
  32. print(f" 检查版本: {version_name}")
  33. # 检查index.html
  34. index_file = version_dir / "index.html"
  35. if not index_file.exists():
  36. print(f" ✗ {version_name}/index.html 不存在")
  37. return False
  38. print(f" ✓ {version_name}/index.html 存在")
  39. # 检查version_config.json
  40. config_file = version_dir / "version_config.json"
  41. if not config_file.exists():
  42. print(f" ✗ {version_name}/version_config.json 不存在")
  43. return False
  44. print(f" ✓ {version_name}/version_config.json 存在")
  45. # 检查_static目录
  46. static_dir = version_dir / "_static"
  47. if not static_dir.exists():
  48. print(f" ✗ {version_name}/_static 目录不存在")
  49. return False
  50. print(f" ✓ {version_name}/_static 目录存在")
  51. # 检查version_menu.js
  52. js_file = static_dir / "version_menu.js"
  53. if not js_file.exists():
  54. print(f" ✗ {version_name}/_static/version_menu.js 不存在")
  55. return False
  56. print(f" ✓ {version_name}/_static/version_menu.js 存在")
  57. # 检查version_menu.css
  58. css_file = static_dir / "version_menu.css"
  59. if not css_file.exists():
  60. print(f" ✗ {version_name}/_static/version_menu.css 不存在")
  61. return False
  62. print(f" ✓ {version_name}/_static/version_menu.css 存在")
  63. # 检查根页面
  64. root_index = build_dir / "html" / "index.html"
  65. if root_index.exists():
  66. print("✓ 根目录重定向页面已生成")
  67. else:
  68. print("✗ 根目录重定向页面未生成")
  69. return False
  70. # 检查versions根页面
  71. versions_root_index = versions_dir / "index.html"
  72. if versions_root_index.exists():
  73. print("✓ versions目录根页面已生成")
  74. else:
  75. print("✗ versions目录根页面未生成")
  76. return False
  77. print("=== 所有检查通过 ===")
  78. return True
  79. def main():
  80. """主函数"""
  81. success = check_build_results()
  82. if not success:
  83. print("构建检查失败")
  84. exit(1)
  85. else:
  86. print("构建检查成功")
  87. if __name__ == "__main__":
  88. main()