Что делать, если ваш CL сломал сборку интеграции Node.js
Node.js использует стабильную или бета-версию V8. Для дополнительной интеграции команда V8 собирает Node с основной веткой V8, то есть с версией V8 на сегодняшний день. Мы предоставляем интеграционного бота для Linux, в то время как Windows и Mac находятся в процессе разработки.
Если бот node_ci_linux64_rel
терпит неудачу в очереди коммитов V8, то либо существует реальная проблема с вашим CL (исправьте ее), либо необходимо внести изменения в Node. Если тесты Node не прошли, найдите «Not OK» в лог-файлах. Этот документ описывает, как воспроизвести проблему локально и как внести изменения в форк Node V8, если ваш CL для V8 вызывает сбой сборки.
Исходный код
Выполните инструкции в репозитории node-ci, чтобы извлечь исходный код.
Тестирование изменений в V8
V8 настроен как зависимость DEPS в node-ci. Возможно, вы захотите применить изменения в 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 также настроен как зависимость DEPS
в node-ci. Возможно, вы захотите внести изменения в Node.js, чтобы исправить сбои, вызванные изменениями в V8. Тесты V8 выполняются против форка Node.js. Вам потребуется учетная запись GitHub, чтобы внести изменения в этот форк.
Получение исходного кода Node
Создайте форк репозитория Node.js V8 на GitHub (нажмите кнопку Fork), если вы ранее этого не сделали.
Добавьте ваши форк и форк V8 как удаленные репозитории к существующему местному клону:
cd node
git remote add v8 http://github.com/v8/node
git remote add <your-user-name> [email protected]:<your-user-name>/node.git
git fetch v8
git checkout v8/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>
.
После того как запрос на включение изменений будет объединен в форк Node.js для V8, вам необходимо обновить файл DEPS
в node-ci и создать CL.
git checkout -b update-deps
gclient setdep --var=node_revision=<merged-commit-hash>
git add DEPS
git commit -m 'Обновить Node'
git cl upload