Git hook для приложения React Native / Expo для предотвращения ошибок во время компиляции?

Есть новый проект с открытым исходным кодом, над которым я работаю, и, похоже, синтаксические ошибки часто допускаются в основной ветке. Я хотел бы настроить Git Hook, который будет уведомлять участников об основных ошибках, прежде чем отправлять их рабочие ветки на GitHub.

Как настроить git-ловушку для отклонения кода с простыми ошибками сборки для нашего приложения React Native expo?

В настоящее время кажется, что в этом проекте нет сценариев package.json, которые выполняют тестовые сборки или что-то подобное, что я могу использовать, и, к сожалению, я недостаточно знаю об expo, чтобы создать свой собственный. есть идеи?

Всего 2 ответа


Я считаю, что вы спрашиваете, как настроить непрерывную интеграцию. Есть много способов сделать это. Я немного расскажу, как я это сделал.

  1. Установите и настройте веб-перехватчик (или настройте сервер со статическим URL)
  2. Установите Jenkins локально или на сервере со статическим URL
  3. Настройка веб-перехвата с помощью Jenkins и Github
  4. Как только хук будет установлен и работает, вы можете добавить bash-скрипты в jenkins для git clone, собрать и протестировать проект expo.
  5. Отправить информацию обратно на github через веб-крючок (например, Build: fail / Success)

В Интернете есть несколько полезных руководств.

РЕДАКТИРОВАТЬ:

Jenkins может автоматически загружать репозиторий github, когда кто-то отправляет код или когда делается запрос на извлечение.

Jenkins может запустить любой скрипт bash для сборки, тестирования, развертывания

Дженкинс может обновить github с помощью webhook с результатами скриптов bash

Дженкинс может сделать намного больше

Полезная ссылка


Если вы хотите просто перехватить новый код, который нарушает предыдущий тест, вы можете использовать Husky . Устанавливает git hook. Вы также можете запустить тест с помощью npm run test.

Expo строит ваш проект для вас, когда вы запускаете expo build. Он также создается в свое время (если у вас нет приоритетной выставочной учетной записи) и может занять более 3 часов. Вы можете связать успех / неудачу сборки с использованием git hook, используя хаски, но вам придется подождать 3 с лишним часа, прежде чем вы сможете выполнить git push - из-за огромного узкого места в производительности.


Есть идеи?

10000