← Назад ко всем вопросам

Как указать, чтобы сборка запускалась только при указании определенного тега в GitLab CI

1️⃣ Как кратко ответить

В GitLab CI для запуска сборки только при указании определенного тега используйте директиву only с параметром refs в файле .gitlab-ci.yml. Укажите нужный тег в формате only: [tags] и добавьте условие для конкретного тега, например, only: [tags, /^v\d+\.\d+\.\d+$/].

2️⃣ Подробное объяснение темы

GitLab CI/CD — это инструмент для автоматизации процессов сборки, тестирования и развертывания приложений. Одной из его возможностей является запуск сборок на основе различных условий, таких как наличие определенных тегов в репозитории. Это полезно, когда необходимо выполнять сборку только для определенных версий приложения, помеченных тегами.

Зачем это нужно

Использование тегов для управления сборками позволяет:

  • Автоматизировать выпуск версий программного обеспечения.
  • Избежать ненужных сборок для промежуточных изменений.
  • Упростить процесс развертывания стабильных версий.

Как это работает

В GitLab CI/CD файл .gitlab-ci.yml определяет, какие задачи и когда должны выполняться. Чтобы ограничить выполнение задач только для определенных тегов, используется директива only. Она позволяет указать, при каких условиях должна запускаться сборка.

Пример использования

Рассмотрим пример файла .gitlab-ci.yml, который запускает сборку только при наличии тега, соответствующего шаблону версии, например, v1.0.0:

stages:
  - build
​
build_job:
  stage: build
  script:
    - echo "Building the project..."
  only:
    - tags
    - /^v\d+\.\d+\.\d+$/

Объяснение кода

  • stages: Определяет этапы (stages) в процессе CI/CD. В данном случае у нас есть один этап — build.
  • build_job: Имя задания (job), которое будет выполняться на этапе build.
  • stage: build: Указывает, что это задание относится к этапу build.
  • script: Содержит команды, которые будут выполнены в рамках задания. Здесь просто выводится сообщение "Building the project...".
  • only: Определяет условия, при которых задание будет выполняться.
    • tags: Указывает, что задание должно выполняться только для тегов.
    • /^v\d+\.\d+\.\d+$/: Регулярное выражение, которое определяет формат тега. В данном случае это теги, начинающиеся с v, за которыми следуют три группы цифр, разделенные точками (например, v1.0.0).

Применение

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

Тема: CI/CD
Стадия: Tech

🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!

Твои заметки