Система непрерывной интеграции (CI) играет важную роль в автоматизированном создании программного обеспечения (включая компиляцию, выпуск и автоматизированное тестирование).В прошлом фронтенд-проекты были простыми, и во многих случаях выпуск представлял собой просто несколько простых копий. с рождением инструментов веб-упаковки интерфейсные проекты становятся все более и более сложными, и большинство проектов требуют процесса построения.В то время мы, естественно, думали о jenkins, поэтому мы интегрировали интерфейсный проект в jenkins, и все было идеально, пока не был один день .......
Это было, когда я работал в своей последней компании. Однажды я вдруг узнал, что фронтенд-командный проект компании был упакован и выпущен с использованием системы упаковки, написанной мной. Я был удивлен. Я мало знаю о непрерывной интеграции, и я думаю это правда.Режим разработки перед фронтендом в принципе не нужно упаковывать и конструировать.При публикации все шаблоны и ресурсы упаковываются(сжимаются) и отправляются в эксплуатацию и сопровождение. Поэтому я взглянул на их систему упаковки, и она может выполнять только функцию онлайн-упаковки.Он не поддерживает журналы в реальном времени, построение очередей, построение триггеров и т. д., поэтому я начал давать им Amway Jenkins, но существующая Хотя система проста, ее можно использовать, и все фактически отвергают ее. Сильный толчок не должен быть лучшей стратегией, поэтому я сказал, что было бы хорошо, если бы текущая система сборки могла поддерживать логи и очереди задач в реальном времени.Все видят, что объем разработки не мал, лучше перейти на jenkins , поэтому интерфейсные проекты будут перенесены в jenkins.....
История здесь не окончена.
Ничто не может остановить человеческое любопытство. После этого я подумал о том, что нам следует сделать, если мы сможем сами построить систему построения интерфейса для поддержки журналов и очередей задач в реальном времени.
По совпадению, хотя jenkins сам по себе очень мощный, он также имеет некоторые недостатки, то есть упакованный журнал не может иметь тот же формат, что и локальный, например, цвет текста журнала, шрифт и т. д. В этом случае он не может локализовать ошибки как быстро, так как упаковано на месте. Потом Baidu поковырялся и нашел плагин под названием AnsiColor.Я обрадовался и тут же пересобрал его, но обнаружил, что функция форматирования лога очень слабая.В качестве примера vue-проекта вывод лога должен был отображаться в красном (ошибка процесса сборки) все черные, что действительно приемлемо. Вот я и задумался о написании набора ci, посвященного фронтенду, конечно, чтобы не изобретать велосипед, чисто чесалось.
цель, которую нужно достичь
- Поддерживает журналы в реальном времени и имеет хороший формат
- Очередь задач поддержки
- Поддержка триггеров
Техническая точка:
- Очередь задач может поддерживать глобальный список задач на стороне сервера.
- Журнал в реальном времени использует веб-сокет для синхронизации информации о пакетах сервера со страницей в реальном времени.
- Форматирование журнала может быть Baidu «код управления ANSI», мы анализируем код управления ANSI для применения пользовательских стилей.
- Триггеры могут настраивать сценарии через проект для запуска пользовательского сценария в ключевых точках.
Так написано так:
Вверху находится информация о проекте, с красным облаком, обозначающим неудачную сборку, и зеленым солнцем, обозначающим успешную сборку.
Форматирование журнала сборки.
Распечатывать журналы в реальном времени во время сборки
При ожидании в очереди с несколькими задачами сборкиСуммировать
Этот проект является проектом передовой практики, включающим интерфейс, серверную часть, веб-сокет, сценарии оболочки. Лично я считаю, что это очень подходит для дипломного проекта или стажировки. Теперь этот проект является обязательным для наших фронтенд-стажеров.
Карьера
Если вы думаете, практичны и заинтересованы в программировании, пожалуйста, пришлите мне личное сообщение.