如果你的 CL 中斷了 Node.js 整合建置該怎麼辦
Node.js 使用 V8 穩定版或測試版。對於額外的整合,V8 團隊使用 V8 的 主分支來建置 Node,也就是說,使用今日的 V8 版本。我們提供了一個整合機器人,適用於 Linux,而 Windows 和 Mac 則正在進行中。
如果 node_ci_linux64_rel
機器人在 V8 commit 佇列中失敗,表示你的 CL 有合法問題(修復它)或必須修改 Node。如果 Node 測試失敗,請在記錄檔中搜尋「Not OK」。這份文件說明如何在你本機重現問題,以及如果你的 V8 CL 導致建置失敗,如何對 V8 的 Node 分支 進行變更。
來源 #
遵循 node-ci 儲存庫中的 說明來檢出來源。
測試對 V8 的變更 #
V8 設定為 node-ci 的 DEPS 相依性。你可能想要套用對 V8 的變更來進行測試或重現失敗。為此,請將你的 V8 主要檢出內容新增為遠端
cd v8
git remote add v8 <your-v8-dir>/.git
git fetch v8
git checkout v8/<your-branch>
cd ..
請記得在編譯前執行 gclient hooks。
gclient runhooks
JOBS=`nproc` make test
對 Node.js 進行變更 #
Node.js 也設定為 node-ci 的 DEPS
相依性。你可能想要套用對 Node.js 的變更,以修復 V8 變更可能造成的損壞。V8 針對 Node.js 的分支 進行測試。你需要一個 GitHub 帳戶才能對該分支進行變更。
取得 Node 來源 #
在 GitHub 上 分支 V8 的 Node.js 儲存庫(按一下分支按鈕),除非你之前已經這樣做過。
將你的分支和 V8 的分支都新增為現有檢出內容的遠端
cd node
git remote add v8 http://github.com/v8/node
git remote add <your-user-name> git@github.com:<your-user-name>/node.git
git fetch v8
git checkout node-ci-<sync-date>
export BRANCH_NAME=`date +"%Y-%m-%d"`_fix_name
git checkout -b $BRANCH_NAME
注意
<sync-date>
是我們與上游 Node.js 同步的日期。選擇最新的日期。
對 Node.js 檢出內容進行變更,並提交它們。然後將變更推送到 GitHub
git push <your-user-name> $BRANCH_NAME
並針對分支 node-ci-<sync-date>
建立一個 pull request。
一旦 pull request 已合併到 V8 的 Node.js 分支,你需要更新 node-ci 的 DEPS
檔案,並建立一個 CL。
git checkout -b update-deps
gclient setdep --var=node_revision=<merged-commit-hash>
git add DEPS
git commit -m 'Update Node'
git cl upload