Перейти к содержанию

Автоматизация сборки, тестирования и публикации результатов через CI/CD

Описание

В большинстве команд повторяющиеся инженерные действия долгое время выполняются вручную: сборка запускается локально, тесты выполняются не для каждого изменения, а результаты передаются в чатах, письмах или файловых хранилищах. Такой процесс работает до тех пор, пока команда небольшая и у всех участников одинаковое понимание последовательности действий. По мере роста продукта это приводит к разночтениям: один и тот же результат собирается по-разному, проверки выполняются не полностью, а итог выполнения сложно быстро подтвердить.

GitFlic CI/CD позволяет перевести эти действия в единый управляемый процесс. Конвейер объединяет стадии и задачи, которые последовательно выполняют сборку, проверки и сохранение результатов. В результате команда получает не набор ручных операций, а воспроизводимый сценарий, одинаковый для каждого запуска.

В рамках данного руководства публикация результатов означает не выпуск в промышленную среду и не формирование релиза, а сохранение и предоставление результатов сборки и проверки в интерфейсе GitFlic: артефактов, журналов выполнения и отчётов тестирования.

Какую задачу решает такой подход

Автоматизация сборки, тестирования и публикации результатов через CI/CD помогает решить сразу несколько практических задач:

  • исключить разницу между «локальной» и «контурной» сборкой;
  • сделать проверки обязательной частью процесса, а не ручной договорённостью;
  • сохранить результаты выполнения в одном месте и сделать их доступными для команды;
  • сократить количество действий, которые нужно повторять от изменения к изменению;
  • упростить сопровождение процесса автоматизации.

Отдельная ценность такого подхода состоит в том, что сценарии автоматизации обычно описываются в YAML-конфигурации. Для опытного разработчика такие сценарии, как правило, читаемы и понятны, поэтому для построения базового процесса автоматизации не всегда требуется отдельное участие опытного DevOps-специалиста.

Как выглядит единый процесс в GitFlic

В прикладном сценарии работа строится следующим образом:

  1. В проект добавляется конфигурация CI/CD.
  2. При запуске конвейера GitFlic последовательно выполняет задачи по стадиям.
  3. На одной стадии собирается результат.
  4. На следующей стадии выполняются тесты и дополнительные проверки.
  5. После завершения задач результаты сохраняются в виде артефактов и отчётов.
  6. Команда просматривает статус выполнения, журналы и опубликованные результаты в интерфейсе проекта.

Такой подход позволяет рассматривать CI/CD не только как способ запуска команд, но и как механизм публикации технического результата в общем контуре разработки.

Список конвейеров проекта

Автоматизация сборки

Сборка — это первый шаг, который имеет смысл сделать одинаковым для всех изменений. Пока сборка выполняется локально, команда зависит от окружения конкретного разработчика: версии инструментов, наличия зависимостей и личных привычек запуска. Когда сборка становится задачей конвейера, она выполняется по единым правилам и даёт единообразный результат.

В GitFlic конвейер состоит из стадий, а внутри стадий выполняются задачи. Это позволяет отделить сборку от последующих проверок и видеть, на каком этапе находится обработка изменения.

Стадии и задачи конвейера

Автоматизация тестирования и проверок

После сборки в тот же процесс можно включить автоматические проверки. Это могут быть unit-тесты, линтеры, статический анализ и другие контрольные действия, которые команда считает обязательными. Важен сам принцип: проверки выполняются не выборочно и не «по памяти», а как часть одного и того же конвейера.

Для команды это означает, что статус качества изменения становится наблюдаемым. Не нужно отдельно уточнять, запускались ли тесты, где посмотреть результат и какой именно набор проверок был выполнен. Всё это фиксируется в рамках запуска конвейера.

Сводка результатов тестирования в конвейере

Публикация результатов без ручной передачи файлов

Следующий практический шаг — сделать так, чтобы результаты работы конвейера не терялись после выполнения задач. Для этого в GitFlic используются артефакты и отчёты.

Артефакты позволяют сохранить результаты сборки: архивы, подготовленные файлы, промежуточные пакеты и другие материалы, которые команда использует для анализа результата или дальнейшей работы. Отчёты позволяют отобразить результаты проверок непосредственно в интерфейсе проекта.

Именно этот шаг и снимает значительную часть ручных операций. Вместо пересылки файлов, ручного поиска журналов и повторного объяснения «что именно получилось», команда получает единое место просмотра результатов.

Артефакты задачи

Что именно считается публикацией результатов в этом сценарии

В рамках данного руководства под публикацией результатов понимается сохранение и отображение технических результатов работы конвейера. Обычно это:

  • собранные файлы и архивы;
  • результаты отдельных задач;
  • журналы выполнения;
  • отчёты тестирования.

Такой подход особенно полезен в командах, где после сборки результат должен быть доступен не только инициатору запуска, но и другим участникам процесса: разработчикам, ответственным за проверку, тестировщикам и руководителям технических направлений.

Для unit-тестов GitFlic поддерживает отображение JUnit-отчётов прямо в интерфейсе проекта, поэтому результаты проверки можно смотреть не только по логам, но и в отдельном представлении тестов.

Подробные результаты тестов по задаче

Пример базовой конфигурации

Ниже приведён укрупнённый пример конфигурации, в которой один конвейер выполняет сборку, затем проверки и после этого сохраняет результаты. Пример нужен как ориентир структуры процесса; при необходимости его можно адаптировать под конкретный стек, формат сборки и состав проверок без изменения логики данного руководства.

stages:
  - build
  - test
  - publish

build job:
  stage: build
  scripts:
    - echo "Сборка проекта"
    - mkdir build-output
    - echo "artifact" > build-output/result.txt
  artifacts:
    paths:
      - build-output/

unit tests:
  stage: test
  scripts:
    - echo "Запуск тестов"
    - mkdir reports
    - cat <<'XML' > reports/junit.xml
      <testsuite name="example" tests="1" failures="0">
        <testcase classname="sample" name="test_ok"/>
      </testsuite>
      XML
  artifacts:
    reports:
      junit:
        paths:
          - reports/junit.xml

publish results:
  stage: publish
  scripts:
    - echo "Публикация результатов в интерфейсе GitFlic"
  artifacts:
    paths:
      - build-output/
      - reports/

Практический эффект для команды

Когда сборка, тестирование и публикация результатов объединены в один конвейер, команда получает более предсказуемый инженерный процесс.

Во-первых, сокращается количество ручных действий. Не требуется заново запускать одни и те же команды на локальной машине и отдельно передавать результат коллегам.

Во-вторых, проверки становятся встроенной частью рабочего потока. Это снижает вероятность пропуска тестов и упрощает контроль качества изменений.

В-третьих, результаты становятся наблюдаемыми. В любой момент можно открыть конвейер, посмотреть статус задач, изучить журналы выполнения, скачать артефакты и перейти к отчётам тестирования.

Наконец, сам процесс автоматизации становится проще поддерживать. Даже если конфигурация развивается со временем, базовая логика сборки, проверки и публикации результатов остаётся понятной и читаемой для опытной команды разработки.

Итог

GitFlic CI/CD позволяет превратить сборку, тестирование и публикацию результатов из набора повторяющихся ручных действий в единый технический процесс. В таком процессе результаты не теряются после выполнения команд, а становятся частью общего инженерного контура: их можно просмотреть, проверить, скачать и использовать дальше в рамках работы команды.

Ценность такого подхода состоит не только в ускорении операций, но и в повышении прозрачности. Команда видит, что именно было собрано, какие проверки выполнены и какие результаты опубликованы по итогам запуска.

См. также