Что такое only/except в GitLab CI
1️⃣ Как кратко ответить
Only/except в GitLab CI — это директивы, которые определяют, при каких условиях должен выполняться конкретный job в pipeline. Only указывает, когда job должен запускаться, а except — когда не должен. Они могут использоваться для фильтрации по веткам, тегам, переменным и другим условиям.
2️⃣ Подробное объяснение темы
В GitLab CI/CD, когда вы создаете pipeline, вы можете столкнуться с ситуацией, когда не все jobs должны выполняться при каждом запуске. Например, вы можете захотеть запускать определенные jobs только для определенных веток или исключать их для других. Для этого в GitLab CI используются директивы only и except.
Зачем это нужно
Использование only/except позволяет оптимизировать процесс CI/CD, избегая ненужных запусков jobs, что экономит ресурсы и время. Это особенно важно в больших проектах, где каждый запуск pipeline может занимать значительное время и ресурсы.
Как это работает
- only: Определяет условия, при которых job должен быть выполнен. Если условия, указанные в only, выполняются, job запускается.
- except: Определяет условия, при которых job не должен быть выполнен. Если условия, указанные в except, выполняются, job не запускается.
Примеры использования
Пример 1: Фильтрация по веткам
job:
script: echo "This job runs only on the master branch"
only:
- master
- script: Команда, которая будет выполнена в job.
- only: - master: Job будет выполняться только в ветке
master.
Пример 2: Исключение для определенной ветки
job:
script: echo "This job runs on all branches except master"
except:
- master
- except: - master: Job будет выполняться во всех ветках, кроме
master.
Пример 3: Использование тегов
job:
script: echo "This job runs only for tagged commits"
only:
- tags
- only: - tags: Job будет выполняться только для коммитов, помеченных тегами.
Пример 4: Комбинированные условия
job:
script: echo "This job runs on master and for tagged commits"
only:
refs:
- master
- tags
- only: refs: - master - tags: Job будет выполняться в ветке
masterи для всех коммитов с тегами.
Практическое применение
- Разделение окружений: Вы можете настроить jobs так, чтобы они выполнялись только в определенных окружениях, например, только в production.
- Оптимизация ресурсов: Исключение выполнения jobs для веток, которые не требуют тестирования или деплоя, например, для feature-веток.
- Управление релизами: Запуск jobs только для тегированных коммитов, что может быть полезно для автоматизации релизов.
Таким образом, only/except — это мощные инструменты для управления поведением jobs в GitLab CI/CD, позволяющие гибко настраивать условия их выполнения.
🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!
Подписаться