| feat: add GitCode actions for pytest orchestration and reporting Add three GitCode action plugins from openlibing-pytest-executor: - openlibing-upload-reports: upload test reports to openlibing - pytest-orch: pytest test orchestration - test-result-display: display test results Add .gitignore to exclude node_modules and other generated files. Co-authored-by: Trae <noreply@trae.ai> Generated-by: claude-opus-4-5 | 1 个月前 |
| ci(workflows): add code-metrics-scan workflow 接入 openLiBing 代码度量扫描插件,工作流由 workflow_dispatch 与 push 默认分支触发。 Refs openlibing/code-metrics-action#14 Co-authored-by: Trae <noreply@trae.ai> Generated-by: glm-5.3-flashx | 8 天前 |
| build(test-result-display): add package script for versioned zip - test-result-display: add package npm script to produce a versioned zip (dist/ + action.yml), aligning with the packaging pattern used by metadata-collect, precision-test, pytest-orch, and upload-reports - metadata-collect: rebuild dist artifacts after ncc re-bundle, which reformats chained ternary and string-replace calls onto single lines - precision-test: bump version 1.0.0 -> 2.0.0 and remove unused @types/node and typescript devDependencies from package-lock Co-authored-by: Trae <noreply@trae.ai> Generated-by: trae-sonnet-4 | 8 天前 |
| !44 merge precision into master chore(precision-test): 同步 test_selector 上游并适配 torch_npu 改为 pytorch (#18) Created-by: tzing_t Commit-by: z30004965 Merged-by: openLiBingCI Description: ## 变更说明 test_selector 上游近期调整了 pytorch 仓库的接入方式(repo 注册 key torch_npu→pytorch、PR 源 GitCode→GitHub),并新增首次绑定豁免规则。precision-test 内嵌的 test_selector 包需同步上游,否则 action 入参契约与 Python CLI choices 不一致会导致运行时报错。 ## 变更内容 - **Python 包同步**:src/ 与 dist/test_selector/ 的 8 个 py 文件 + README.md 同步至 test_selector 上游最新 - 首次绑定豁免规则:纯插入块中绑定全新名字的惰性赋值不再记录锚点(diff_parser.py / change_detector.py) - repos 注册 key torch_npu→pytorch;TorchNpuAdapter 改用 --github-pr pytorch/pytorch#N,product_code_prefix 改为 torch/ - **入参契约适配**: - validators.js AVAILABLE_REPOS 替换 torch_npu 为 pytorch - action.yml repo-name/github-pr/gitcode-pr 描述更新(gitcode-pr 保留为通用入口,与 github-pr 互斥) - **文档适配**:README.md torch_npu 示例改为 pytorch + github-pr,差异对照表/环境变量表/覆盖率布局文案同步 - **重新打包**:ncc 重新打包 dist/index.js,内嵌 AVAILABLE_REPOS 已含 pytorch ## 关联 Issue - Fixes #18 - Refs #15(初始三仓统一重构) ## 测试计划 - [x] diff 验证 src/ 与 test_selector 上游零差异 - [x] diff 验证 dist/test_selector/*.py 与 src/ 一致 - [x] grep 验证 dist/index.js 内嵌 AVAILABLE_REPOS = ["vllm_ascend", "sglang", "pytorch"],无 torch_npu - [ ] 工作流实测:repo-name: pytorch + github-pr: pytorch/pytorch#N 端到端执行 ## 风险 - repo-name 合法值由 torch_npu 变为 pytorch:使用旧值 torch_npu 的存量工作流需更新为 pytorch,否则 validators.js 会拒绝 - torch_npu.py 文件名与 TorchNpuAdapter 类名未改(与上游一致,仅注册 key 和属性变化) ## 变更统计 21 files changed, 595 insertions(+), 180 deletions(-) See merge request: openlibing/test-action!44 | 2 天前 |
| fix(obs): enforce HTTPS and restore OBS TLS verification Harden the OBS transport channel so it no longer degrades to an unverified path despite using an https:// endpoint. obs-base-url input (validators.js): - validateObsBaseUrl now rejects HTTP; only HTTPS is allowed OBS upload (index.js uploadArchiveLogDirToObs): - set ssl_verify:true on ObsClient; esdk-obs-nodejs defaults rejectUnauthorized to this.sslVerify||false, so without ssl_verify the cert chain was not validated at all - wrap https.request at module load to restore tls.checkServerIdentity for *.myhuaweicloud.com; the SDK hardcodes a request-level no-op checkServerIdentity (overriding any agent-level setting), which skips hostname verification even with ssl_verify:true. The wrapper rewrites it before the request reaches the TLS layer, blocking MITM with a domain-mismatched cert. Scoped to OBS hosts; APIG uses fetch and git/pip are subprocesses, so they are unaffected scheduler_secret delivery (index.js): - pass scheduler_secret via the SCHEDULER_SECRET env var instead of the --scheduler_secret argv, so it no longer appears in the process command line (/proc/<pid>/cmdline, ps output); argv is dropped leaving env as the single channel. core.setSecret already registers mask values; stdout/stderr are forwarded verbatim Artifacts: - rebuild dist/index.js to mirror the source changes Co-authored-by: Trae <noreply@trae.ai> Generated-by: trae-sonnet-4 | 3 天前 |
| fix(test-result-display): harden summary path validation and sourceTask sanitization - Add validateSummaryFilePath to validate ATOMGIT_STEP_SUMMARY path before appendFileSync: rejects path traversal, symbolic links, and paths outside the workspace/tmp whitelist; requires the summary file to already exist (not created by this action) - Apply sanitizeSourceTask to sourceTaskDisplay in run() before passing to core.warning/core.info, preventing log injection and sensitive data leakage via unsanitized sourceTask values - Export validateSummaryFilePath for unit testing - Rebuild dist/index.js Co-authored-by: Trae <noreply@trae.ai> Generated-by: trae-sonnet-4 | 4 天前 |
| !27 merge docs/readme-template-v2 into master docs(readme): 对齐 test-action 全量插件 README 至编写规范 Created-by: dd4574bb Commit-by: dd4574bb;openLiBingCI Merged-by: openLiBingCI Description: ## 变更摘要 按 README-TEMPLATE.md 规范,对齐 test-action 仓库全量插件 README 与示例。 ## 主要变更 - 仓库根 README.md:tag 升级(pytest-orch/metadata-collect/test-result-display/precision-test: v1.0.0 → v1.0.2;upload-reports: v1.0.0 → v2.0.0);input 改用 ars.OBS_BUCKET_NAME 等变量命名 - 6 个子插件 README:tag 升级 + 内容与新规范对齐 - workflow-example/Case-run-test.yml:移除 obs-ak/obs-sk/openlibing-secret 等过时输入 - workflow-example/Case-upload-reports.yml:同步规范 ## 关联 Issue Fixes #11 ## 测试计划 - [x] 所有子插件 README tag 与实际发布一致 - [x] input 命名统一(OBS_* 走 vars.*) - [x] 工作流示例已简化(移除已弃用字段) - [x] 无破坏性配置改动(仅文档同步) Refs #10 See merge request: openlibing/test-action!27 | 17 天前 |
| docs(readme): align all plugin READMEs with the new writing specification - Update tags in examples: pytest-orch/metadata-collect/test-result-display/ precision-test to v1.0.2, upload-reports to v2.0.0 - Switch OBS inputs from secrets.* to vars.* per the new convention - Add permissions: id-token: write block in upload workflow example - Drop deprecated inputs (obs-ak/obs-sk/openlibing-secret) - Refine README-TEMPLATE.md after a logic pass (cross-references, terminology, appendix links, badge wording) Refs test-action standards defined in README-TEMPLATE.md. Co-authored-by: Trae <noreply@trae.ai> Generated-by: claude-sonnet-4-6 | 22 天前 |
| fix: 忽略构建产物目录,避免代码检查工具检查 dist 文件 修改配置文件,确保代码检查工具不检查构建产物: - eslint.config.js:添加 ignores 配置,排除所有位置的 dist/build/target 目录 - .pre-commit-config.yaml:添加 exclude 配置,排除 dist/build/target 目录 原因:dist/ 是构建产物,不是源代码,不应该被代码检查工具检查。 Co-authored-by: Trae <noreply@trae.ai> Generated-by: claude-sonnet-4-6 | 1 个月前 |
| feat(pytest-orch): add only-fail and fail-case parameters support Add --only-fail and --fail-case input parameters to pytest-orch action. These parameters enable running only failed test cases based on previous test results. Changes: - Add only-fail and fail-case input parameters in action.yml - Add parameter validation logic in index.js - Add validateBoolean function for boolean parameter validation - Pass parameters to main.py when specified - Add corresponding logging output Co-authored-by: Trae <noreply@trae.ai> Generated-by: claude-sonnet-4-6 | 1 个月前 |
| fix: 忽略构建产物目录,避免代码检查工具检查 dist 文件 修改配置文件,确保代码检查工具不检查构建产物: - eslint.config.js:添加 ignores 配置,排除所有位置的 dist/build/target 目录 - .pre-commit-config.yaml:添加 exclude 配置,排除 dist/build/target 目录 原因:dist/ 是构建产物,不是源代码,不应该被代码检查工具检查。 Co-authored-by: Trae <noreply@trae.ai> Generated-by: claude-sonnet-4-6 | 1 个月前 |
| feat: 接入代码格式化工具,配置 Prettier 接入 Prettier 代码格式化工具,建立代码格式基线: - 新增 package.json(含 format 脚本和 prettier 依赖) - 新增 .prettierrc.json(格式化配置) - 新增 .prettierignore(格式化忽略规则) - 新增 .pre-commit-config.yaml(通用 hooks + 格式化 hooks) Relates #1 Co-authored-by: Trae <noreply@trae.ai> Generated-by: claude-sonnet-4-6 | 1 个月前 |
| feat: 接入代码格式化工具,配置 Prettier 接入 Prettier 代码格式化工具,建立代码格式基线: - 新增 package.json(含 format 脚本和 prettier 依赖) - 新增 .prettierrc.json(格式化配置) - 新增 .prettierignore(格式化忽略规则) - 新增 .pre-commit-config.yaml(通用 hooks + 格式化 hooks) Relates #1 Co-authored-by: Trae <noreply@trae.ai> Generated-by: claude-sonnet-4-6 | 1 个月前 |
| feat(pytest-orch): 新增可选 collect-config-file 入参 参照 testcase-config-file 的处理方式新增 collect-config-file 选填入参: 经 validateFilePath 校验,提供 testcase-repo 时拼接到用例仓目录, 透传 --collect_config_file 给 main.py,并重建 dist/index.js。 Co-authored-by: Trae <noreply@trae.ai> Generated-by: claude-sonnet-4-6 | 16 天前 |
| feat(pytest-orch): 新增可选 collect-config-file 入参 参照 testcase-config-file 的处理方式新增 collect-config-file 选填入参: 经 validateFilePath 校验,提供 testcase-repo 时拼接到用例仓目录, 透传 --collect_config_file 给 main.py,并重建 dist/index.js。 Co-authored-by: Trae <noreply@trae.ai> Generated-by: claude-sonnet-4-6 | 16 天前 |
| fix: 忽略构建产物目录,避免代码检查工具检查 dist 文件 修改配置文件,确保代码检查工具不检查构建产物: - eslint.config.js:添加 ignores 配置,排除所有位置的 dist/build/target 目录 - .pre-commit-config.yaml:添加 exclude 配置,排除 dist/build/target 目录 原因:dist/ 是构建产物,不是源代码,不应该被代码检查工具检查。 Co-authored-by: Trae <noreply@trae.ai> Generated-by: claude-sonnet-4-6 | 1 个月前 |
| feat: 接入开源代码检查工具,配置 Prettier 和 ESLint 接入代码格式化和检查工具,建立代码质量基线: - 接入 Prettier 格式化工具 - 接入 ESLint 检查工具 - 新增配置文件: - package.json(含 format/lint 脚本和相关依赖) - .prettierrc.json(格式化配置) - .prettierignore(格式化忽略规则) - eslint.config.js(ESLint flat config,含 JS/TS/Vue 规则) - .pre-commit-config.yaml(通用 hooks + 格式化 hooks + 检查 hooks) Relates #1 Co-authored-by: Trae <noreply@trae.ai> Generated-by: claude-sonnet-4-6 | 1 个月前 |