Как называется процесс сборки приложения в CI/CD?

Ответ

В CI/CD этот этап называется Build Stage (Этап сборки). Его цель — преобразование исходного кода, конфигураций и зависимостей в готовый к развертыванию артефакт.

Типичный пайплайн сборки включает:

  1. Получение кода (Git checkout).
  2. Восстановление зависимостей (npm install, go mod download).
  3. Компиляция/транспиляция кода.
  4. Запуск модульных тестов.
  5. Создание артефакта (Docker image, JAR/WAR файл, бинарник).
  6. Публикация артефакта в реестр (Docker Registry, Nexus, S3).

Пример конфигурации этапа сборки в GitLab CI:

build_job:
  stage: build
  image: maven:3.8-openjdk-11
  script:
    - mvn clean compile        # Компиляция
    - mvn test                 # Модульные тесты
    - mvn package              # Создание JAR-артефакта
  artifacts:
    paths:
      - target/*.jar           # Сохранение артефакта для следующих этапов

Ключевые принципы: воспроизводимость (использование фиксированных версий инструментов), идемпотентность и создание immutable-артефактов.

Ответ 18+ 🔞

Э, слушай, вот эта вся движуха с CI/CD — это ж просто ёперный театр, если честно. Ну ладно, не буду тебя грузить, сейчас на пальцах объясню про самый первый и важный этап — Build Stage, или, по-нашему, Этап сборки. Его задача — взять твой сырой код, все эти конфиги и библиотеки, и слепить из них что-то вменяемое, что уже можно будет запихнуть на сервер. Без этого — нихуя не полетит.

Что там обычно происходит, по шагам:

  1. Забираем код из гита. Без этого вообще никуда, чувак.
  2. Тянем все зависимости. Это когда npm install или go mod download начинает хапать из интернета овердохуища пакетов. Главное тут — чтобы не сломалось, а то волнение ебать.
  3. Превращаем код во что-то работающее. Компилируем, транспилируем — короче, делаем из человекочитаемого машинопонятное.
  4. Гоняем модульные тесты. Это чтобы сразу понять, не сломал ли ты чего фундаментального. Если тесты падают — дальше можно даже не смотреть, терпения ноль ебать.
  5. Пакуем готовую хрень в артефакт. Docker-образ, JAR-файл, бинарник — что там у тебя по проекту.
  6. Запихиваем этот артефакт куда надо. В Docker Registry, Nexus или ещё в какую сраку, чтобы на следующих этапах его можно было взять.

Вот, смотри, как это выглядит в конфиге GitLab CI, чтоб ты понимал масштаб:

build_job:
  stage: build
  image: maven:3.8-openjdk-11
  script:
    - mvn clean compile        # Компиляция
    - mvn test                 # Модульные тесты
    - mvn package              # Создание JAR-артефакта
  artifacts:
    paths:
      - target/*.jar           # Сохранение артефакта для следующих этапов

А теперь, бля, самое важное — ключевые принципы, без них ты просто распиздяй:

  • Воспроизводимость: Используй фиксированные версии всего! Чтоб сегодня собралось и через год собралось, а не «ой, а у меня новая версия npm, всё сломалось». Иначе будет тебе хиросима, я тебе обещаю.
  • Идемпотентность: Сколько раз ни запускай сборку — результат должен быть одинаковый. Чистота, порядок.
  • Immutable-артефакты: То, что собралось — свято. Его не пересобирают и не меняют. Собрал версию 1.0 — она и есть 1.0 навеки. Если надо что-то поменять — собирай 1.1. Доверия к изменяемым артефактам — ебать ноль. Вот так вот, чувак.