Пользовательские блоки рабочего процесса
Workflow blocks are reusable, composable units of automation – the building blocks from which pipelines are assembled without rewriting the same logic for every workflow.
В аппаратном конвейере CI/CD одни и те же операции повторяются снова и снова: обратиться к списку утвержденных поставщиков, проверить, что обязательные параметры заполнены, уведомить нижестоящую систему, провалидировать определенный класс проектных данных. Без блоков workflow каждая workflow-последовательность заново реализует эту логику независимо. С блоками логика определяется один раз, тестируется один раз и затем компонуется везде, где она нужна.
Блок workflow инкапсулирует конкретную операцию — ее входы, выходы и поведение — и предоставляет ее как шаг, который можно использовать в любой workflow-последовательности. Блок отвечает за реализацию. Workflow отвечает за последовательность.
Что дают Workflow Blocks
-
Reuse of validated logic — блок, реализующий проверку соответствия, вызов внешней системы или преобразование данных, тестируется изолированно, а затем повторно используется в нескольких workflow-последовательностях. Когда базовое требование меняется — например, в список ограниченных компонентов добавляется новая позиция или отдел закупок требует новый параметр — блок обновляется один раз, и изменение распространяется на все workflow-последовательности, которые его используют.
-
Separation of concerns — инженер, который хорошо понимает систему закупок, реализует блок поиска по AVL. Инженер, который определяет процесс выпуска, встраивает его в конвейер. Ни одному из них не нужно в деталях разбираться в предметной области другого. Интерфейс блока — это контракт между ними.
-
Incremental pipeline construction — команды могут начинать с простых ручных workflow-процессов и со временем добавлять сложность, вводя блоки для операций, которые сейчас выполняются вручную. Каждый блок, добавленный в workflow, — это еще одна задача, которая больше не зависит от того, вспомнит ли кто-то ее выполнить.
-
Standardization across teams — в организациях, где несколько команд поддерживают собственные потоки проектирования, общие блоки workflow обеспечивают единообразное поведение на уровне шагов, даже если общая структура конвейера у разных команд отличается. Например, блок проверки соответствия работает одинаково независимо от того, встроен ли он в workflow выпуска PCB или в workflow утверждения библиотек.
Блоки и скрипты
Скрипты — это автономные операции, вызываемые напрямую. Блоки workflow — это компонуемые единицы, предназначенные для сборки в более крупные конвейеры. Блок часто вызывает скрипт: скрипт реализует логику, а блок предоставляет интерфейсный контракт, который делает эту логику пригодной для использования в контексте workflow.
Используйте скрипт, когда нужна автономная операция. Оберните этот скрипт в блок, когда операцию нужно повторно использовать как шаг в нескольких workflow-последовательностях, когда ей нужен стабильный интерфейс, отделяющий реализацию от использования, или когда она должна участвовать в логике последовательности и условий допуска конвейера.