Ключевые слова для gitflic-ci.yaml
В этой документации перечислены ключевые слова для конфигурации вашего gitflic-ci.yaml
файла
Глобальные ключевые слова
Ключевые слова | Описание |
---|---|
image |
Docker Image |
stages |
Имена и порядок выполнения этапов конвеера |
cache |
Список файлов и каталогов для кэширования между задачами |
Ключевые слова для задачи
Ключевые слова | Описание |
---|---|
stage |
Определение стейджа для задачи |
before_script |
Список шелл-скриптов которые будут выполнены агентаом перед задачей |
scripts |
Список шелл-скриптов которые будут выполнены агентом |
after_script |
Список шелл-скриптов которые будут выполнены агентом после задачи |
artifacts |
Список файлов и каталогов для прикрепления к задачи в случае успеха. |
directory |
|
needs |
Данное поле может содержать массив названий задач, которые необходимы для выполнения текущей задачи. |
except |
Название веток на которых задача не будет создана. |
only |
Название веток на которых будет создан. |
tags |
Теги задачи для агента. |
allow_failure |
Используйте allow_failure, чтобы определить, должен ли конвеер продолжать работу в случае сбоя задачи. |
Глобальные ключевые слова
image
Используйте image
, чтобы указать образ Docker, в котором выполняется конвеер.
Пример:
image: maven:3.8.5-openjdk-11-slim
stages
Используйте stages
, чтобы определить список этапов выполнения конвеера.
Если этапы не определены в gitflic-ci.yaml
файле, то по умолчанию используются:
- .pre
- build
- test
- deploy
- .post
Порядок элементов этапов определяет порядок выполнения задач:
- задачи на одном этапе выполняются параллельно.
- задачи на следующем этапе запускаются после успешного завершения заданий на предыдущем этапе. Если конвеер содержит только задачи на этапах .pre или .post, он не запускается. На другом этапе должна быть хотя бы одна другая работа. .pre и .post этапы можно использовать в требуемой конфигурации конвейера для определения задач соответствия, которые должны выполняться до или после задач конвеера проекта.
Пример:
stages:
- build
- test
- deploy
- Все этапы выполняются друг за другом. Если какой-либо этап будет провален, то не начнется следующий и конвеер завершится с ошибкой.
- Если все эти этапы будут успешно пройдены, то конвеер будет считаться успешно выполненным.
cache
Используйте cache
, чтобы указать список файлов и каталогов для кэширования между задачами. Вы можете использовать только те пути, которые есть в локальной рабочей копии.
Кэширование распределяется между конвейерами и заданиями. Кэши восстанавливаются раньше артефактов.
cache:paths
Используйте cache:paths
, чтобы выбрать файлы или каталоги для кэширования.
Пример:
cache:
paths:
- .m2/repository/
- core/target/
- desktop/target/
cache:key
Используйте cache:key
, чтобы присвоить кэшу уникальный идентификационный ключ. Все задачи, использующие один и тот же ключ кэша, используют один и тот же кэш.
Если не задано, по умолчанию используется ключ default
. Все задания с cache ключевым словом, но без cache:key совместного использования default
кеша.
Должен использоваться с cache: path
, иначе ничего не кэшируется.
cache:when
Используется cache:when
для определения времени сохранения кэша в зависимости от состояния задачи.
Должен использоваться с cache: paths
, иначе ничего не кэшируется.
Возможные значения:
- on_success(по умолчанию): Сохранять кеш только после успешного выполнения задачи.
- on_failure: Сохранять кеш только в случае сбоя задачи.
- always: всегда сохранять кеш.
Пример:
cache:
paths:
- .m2/repository/
- core/target/
- desktop/target/
Ключевые слова для задачи
stage
Используйте stage
, для определения этапа для задачи.
Пример
stages:
- build
- deploy
job 0:
stage: build
scripts
Используйте scripts
, чтобы указать команды для выполнения агентом.
job1:
script: apt-get update
job2:
script:
- apt-get -y install maven
- apt-get -y install git
before_script
Используйте before_script
для определения массива команд, которые должны выполняться перед командами сценария каждого задачи, после восстановления артефактов.
Тип ключевого слова: Ключевое слово для задачи. Вы можете использовать его только как часть задачи или в разделе по умолчанию.
Возможные значения: Массив строк
Пример
job1:
script: apt-get update
before_script:
- apt-get -y install maven
- apt-get -y install git
Дополнительные сведения:
- Сценарии, указанные в
before_script
, объединяются с любыми сценариями, указанными вscript
. Объединённые сценарии выполняются вместе в одной оболочке.
after_script
Используйте after_script
для определения массива команд, которые должны выполняться после команд сценария каждой задачи, включая ошибочные задачи.
Тип ключевого слова: Ключевое слово для задачи. Вы можете использовать его только как часть задачи или по умолчанию во всем конвеерее.
Возможные значения: Массив строк:
Пример
job1:
script: apt-get update
after_script:
- apt-get update
- apt-get -y install maven
- apt-get -y install git
Дополнительные сведения:
Если время ожидания задачи истекло или он был отменён, команды after_script
не выполняются.
По умолчанию используются внешние before_script
и after_script
shell-скрипты, однако задача может иметь и свои собственные.
Если они не определены внутри задачи, то используются внешние.
Пример
image: test
stages:
- test
job 0:
stage: test
scripts:
- mvn test
rules:
- if: "predicate1 && predicate2"
when: newer
artifacts
Используйте артефакты, чтобы указать, какие файлы сохранять в качестве артефактов задачи. Артефакты задачи - это список файлов и каталогов, которые присоединяются к задаче при его успешном выполнении, сбое или всегда.
По умолчанию задачи на более поздних этапах автоматически загружают все артефакты, созданные ими на более ранних этапах. Вы можете управлять поведением загрузки артефактов в задачах с зависимостями.
При использовании ключевого слова needs
задачи могут загружать артефакты только из задач, определённых в конфигурации needs
.
Артефакты задач по умолчанию собираются только для успешных задач, а артефакты восстанавливаются после кэширования.
artifacts:paths
Пути относятся к каталогу проекта и не могут напрямую ссылаться за его пределы.
Тип ключевого слова: Ключевое слово для задачи. Вы можете использовать его только как часть задачи или в разделе по умолчанию.
Возможные значения:
- Массив путей к файлам относительно каталога проекта.
Пример
artifacts:
paths:
- bin/usr/
- bin/path
- frontend/saw
artifacts:exclude
Используйте artifacts:exclude
, чтобы предотвратить добавление файлов в архив артефактов.
Тип ключевого слова: Ключевое слово для задачи. Вы можете использовать его только как часть задачи или в разделе по умолчанию.
Возможные значения:
- Массив путей к файлам относительно каталога проекта.
Пример
artifacts:
exclude:
- binaries/**/*.o
Данный пример сохраняет все файлы в binaries/
, исключая *.o
файлы, находящиеся в дочерних директориях binaries/
.
needs
Данное поле может содержать массив названий задач, которые необходимы для выполнения текущей задачи.
Пример
job-0:
stage: test
script: echo "Running job 0"
job-1:
stage: test
needs: job-0
script: echo "Running job 1..."
tags
Используйте tags
для настройки агента.
Вы можете указать теги для определенного агента в настройках агента
Возможные значения
- Массив названий тегов
job:
tags:
- java
- postgres
allow_failure
Используйте allow_failure
, чтобы определить, должен ли конвейер продолжать работу в случае сбоя задания. Значение по умолчанию каждой задачи - false
Чтобы конвейер продолжал выполнять последующие задачи, используйте
allow_failure: true
.Чтобы запретить конвейеру выполнение последующих задачи, используйте
allow_failure: false
.
Возможные значения:
true
илиfalse
except
Используйте except
чтобы указать ветки на которых задача не будет создана.
Возможные значения
- Массив названий веток
job:
except:
- master
- deploy
only
Используйте only
чтобы ветки на которых будет работать задача.
Возможные значения
- Массив названий веток
job:
only:
- master
В данной статье
Документация
- Общая информация
- Основные настройки
- Авторизация и регистрация
- Уведомления
- Создание README для профиля
- Введение
- Получение Access Token
- Пагинация
- Методы для проектов
- Методы для пользователей
- Методы для команд
- Методы для компаний
- Методы для проблем
- Методы для комментариев к проблемам
- Методы для коммитов
- Методы для релизов
- Методы для запросов на слияние
- Методы для веток
- Методы для вебхуков
- Методы для тегов