Repository navigation
Fix Linux native binding workflow and add Docker prechecks - #4
Conversation
There was a problem hiding this comment.
Pull request overview
This PR aims to stabilize Linux CI installs for native-binding-based tooling by ensuring the root package-lock.json contains the required Linux optional binding packages, and by documenting a repeatable Docker-based precheck/repair process.
Changes:
- Add missing Linux x64 GNU native binding entries for
oxfmt,oxlint, androlldownin the rootpackage-lock.json. - Pin Node.js setup in
.github/workflows/push.ymlfor thecode_checkjob (with npm cache enabled). - Add a new Claude command (
/linux-native-binding-repair) and hook it into the/commitworkflow; remove theapps/caddyfile-sdklockfile.
Reviewed changes
Copilot reviewed 4 out of 6 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
package-lock.json |
Adds Linux native binding package nodes so Linux CI can resolve optional binaries consistently. |
CLAUDE.md |
Documents the new /linux-native-binding-repair custom command. |
apps/caddyfile-sdk/package-lock.json |
Removes the app-level lockfile (centralizing dependency locking at the workspace root). |
.github/workflows/push.yml |
Adds actions/setup-node (Node 24.12.0 + npm cache) before npm ci in code_check. |
.claude/commands/linux-native-binding-repair.md |
Adds a Docker/act-driven checklist and remediation guide for missing Linux bindings. |
.claude/commands/commit.md |
Requires running /linux-native-binding-repair when lockfiles/manifests are involved before committing. |
Files not reviewed (1)
- apps/caddyfile-sdk/package-lock.json: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| - uses: actions/checkout@v4 | ||
| - name: Setup Node.js | ||
| uses: actions/setup-node@v4 | ||
| with: | ||
| node-version: 24.12.0 | ||
| cache: npm | ||
| - name: Install dependencies |
There was a problem hiding this comment.
code_check job now pins Node.js 24.12.0, but the subsequent reusable workflows (monkey_push.yml / qinglong_push.yml) also run npm ci on fresh runners without setting up Node. This can lead to non-reproducible installs/builds (different Node/npm versions than code_check) and potential engine/runtime mismatches. Consider moving the Node setup (and npm cache) into the reusable workflows themselves, or otherwise ensuring all jobs that run npm use the same pinned Node version.
| 12. 在目标平台上重新验证: | ||
| - 重新执行 `npm ci` | ||
| - 重新执行之前失败的精确命令 | ||
| - 如果使用 `act`,需要时单独验证对应 job | ||
|
|
||
| 13. 区分依赖问题与 `act` 兼容性问题: |
There was a problem hiding this comment.
Markdown list numbering/indentation is inconsistent: items “12.” and “13.” are indented under item 11, so they’ll render as nested content rather than continuing the top-level sequence. Align the indentation so 12 and 13 are top-level list items (or intentionally nest them with proper formatting).
| 12. 在目标平台上重新验证: | |
| - 重新执行 `npm ci` | |
| - 重新执行之前失败的精确命令 | |
| - 如果使用 `act`,需要时单独验证对应 job | |
| 13. 区分依赖问题与 `act` 兼容性问题: | |
| 12. 在目标平台上重新验证: | |
| - 重新执行 `npm ci` | |
| - 重新执行之前失败的精确命令 | |
| - 如果使用 `act`,需要时单独验证对应 job | |
| 13. 区分依赖问题与 `act` 兼容性问题: |
No description provided.