원클릭으로
compat-testing
执行玲珑打包构建测试,验证生成的工程是否可以正常构建, 并运行兼容性检测确保应用能在玲珑环境中正常运行。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
执行玲珑打包构建测试,验证生成的工程是否可以正常构建, 并运行兼容性检测确保应用能在玲珑环境中正常运行。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
根据deb包信息和CSV配置,生成完整的玲珑打包工程,包括 linglong.yaml 配置文件和 pak_linyaps.sh 打包脚本。
將 Linux binary release tar 歸檔包轉換為玲瓏(Linglong)應用便捷打包腳本。
从deb包解压后的目录中提取应用资源文件(desktop文件、图标、appdata、补全脚本等), 按照玲珑打包规范整理到 files_res/ 目录结构中。
解析Debian软件包(.deb)文件,提取元数据信息并解压文件内容, 为后续玲珑打包工程生成提供基础数据。
根据验证报告自动修复玲珑构建项目中的问题, 包括linglong.yaml格式、desktop文件、图标目录结构、二进制文件权限等。
验证玲珑打包项目目录结构和必要文件的完整性。支持通过JSON配置文件自定义检查规则, 包括目录存在性、文件存在性、通配符匹配数量、脚本可执行权限等。
| 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