بنقرة واحدة
compat-testing
执行玲珑打包构建测试,验证生成的工程是否可以正常构建, 并运行兼容性检测确保应用能在玲珑环境中正常运行。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
执行玲珑打包构建测试,验证生成的工程是否可以正常构建, 并运行兼容性检测确保应用能在玲珑环境中正常运行。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
| name | compat-testing |
| description | 执行玲珑打包构建测试,验证生成的工程是否可以正常构建, 并运行兼容性检测确保应用能在玲珑环境中正常运行。 |
| user-invocable | false |
执行玲珑打包构建测试,验证生成的工程是否可以正常构建,并运行兼容性检测确保应用能在玲珑环境中正常运行。
调用 scripts/validate_linglong_yaml.py:
cd scripts
python3 validate_linglong_yaml.py \
--input templates/linglong.yaml \
--exec-name "$(get_exec_from_desktop)" \
--json \
--output reports/yaml_validation.json
验证项:
调用 scripts/common-data-verify.py:
cd scripts
python3 common-data-verify.py \
templates/files_res \
--json \
--output reports/structure_validation.json
验证项:
运行 pak_linyaps.sh:
cd CI_ll_<package_id>
# 准备测试环境
mkdir -p src bins
cp <deb_file> src/
# 执行打包
./pak_linyaps.sh \
--linyaps_arch=x86_64 \
--origin_version=<version> \
--src_path=src/<deb_name> \
--output_dir=bins
# 检查构建结果
if [ -f bins/*binary.layer ]; then
echo "Build success"
else
echo "Build failed"
fi
调用 scripts/demos/compat_checker.py:
import sys
sys.path.insert(0, "scripts")
from demos.compat_checker import CompatChecker
from pathlib import Path
checker = CompatChecker(
build_dir=Path("/path/to/build/tmp"),
enable_compat_check=True,
timeout=30,
verbose=True
)
success, message = checker.check()
status = checker.get_status() # "passed", "failed", "N/A"
if not success:
error_log = checker.get_error_log_content()
print(f"Compat check failed: {message}")
print(f"Error log:\n{error_log}")
或使用 ll-builder run:
cd <build_tmp_dir>
timeout 30 ll-builder run || exit_code=$?
# exit_code 0: 正常退出
# exit_code 124: 超时(应用持续运行,视为成功)
# 其他: 运行失败
{
"package_id": "com.example.app",
"test_time": "2024-01-15T10:30:00Z",
"overall_status": "passed",
"tests": {
"yaml_validation": {
"status": "passed",
"details": []
},
"structure_validation": {
"status": "passed",
"details": []
},
"build_test": {
"status": "passed",
"output_layer": "bins/com.example.app-binary.layer",
"build_time": "45.2s"
},
"compat_check": {
"status": "passed",
"timeout": 30,
"exit_code": 124
}
},
"errors": [],
"warnings": []
}
| 失败类型 | 处理方式 |
|---|---|
| YAML格式错误 | 调用 linglong-fix skill 修复 |
| 资源结构问题 | 调用 linglong-fix skill 修复 |
| 构建失败 | 分析错误日志,提示用户检查 |
| 兼容性失败 | 保存错误日志,调用 linglong-fix skill |
CI_ll_<package_id>/
└── reports/
├── yaml_validation.json
├── structure_validation.json
├── build.log
└── compat-check-errors/
└── run-error.log
ll-builder - 玲珑构建工具dpkg - deb包处理timeout - 超时控制yaml, pathlib根据deb包信息和CSV配置,生成完整的玲珑打包工程,包括 linglong.yaml 配置文件和 pak_linyaps.sh 打包脚本。
將 Linux binary release tar 歸檔包轉換為玲瓏(Linglong)應用便捷打包腳本。
从deb包解压后的目录中提取应用资源文件(desktop文件、图标、appdata、补全脚本等), 按照玲珑打包规范整理到 files_res/ 目录结构中。
解析Debian软件包(.deb)文件,提取元数据信息并解压文件内容, 为后续玲珑打包工程生成提供基础数据。
根据验证报告自动修复玲珑构建项目中的问题, 包括linglong.yaml格式、desktop文件、图标目录结构、二进制文件权限等。
验证玲珑打包项目目录结构和必要文件的完整性。支持通过JSON配置文件自定义检查规则, 包括目录存在性、文件存在性、通配符匹配数量、脚本可执行权限等。