Задания (tasks)
В блоке tasks
определяется перечень заданий, которые будут выполняться в рабочем процессе.
Каждое задание содержит в себе набор минимальных логических действий — кубиков. Результатом задания является выполнение всех кубиков.
Примечание
Все кубики одного задания запускаются на одной и той же виртуальной машине (воркере). Поэтому если один кубик изменит окружение воркера, например, установит пакет, создаст или удалит файл и т. д., это окружение останется для всех последующих кубиков, которые выполняются в рамках одного задания. Например, в первом кубике устанавливается пакет runtime
для языка Go, во втором выполняется команда go build
, а в следующем — go test
. Подробнее о наследовании окружения см. на странице Кубики (cubes).
Если кубики запущены в разных заданиях, то они гарантированно будут исполняться на разных воркерах.
По умолчанию задание начинается с клонирования репозитория.
Все задания рабочего процесса запускаются параллельно.
В заданиях и кубиках вы можете использовать переменные окружения, а также секреты.
Вы можете задать настройки конкретного задания как внутри блока workflows:tasks
, так и в отдельном блоке tasks
и сослаться на него из блока workflows:tasks
. Формат описания задания для обоих вариантов идентичен.
Поддерживаются следующие параметры:
name
— имя задания.cubes
— список кубиков, которые будут выполняться в задании. Подробнее см. в разделе cubes.env
— переменные окружения, доступные во всех кубиках конкретного задания.
Примеры конфигураций заданий
-
Задание внутри блока
workflows:tasks
:workflows: my-workflow: tasks: - name: my-task cubes: ...
-
Задание в отдельном блоке
tasks
:tasks: - name: common-task workflows: my-workflow: tasks: - common-task
-
Несколько заданий в отдельном блоке
tasks
:tasks: - name: common-task-1 - name: common-task-2 workflows: my-workflow: tasks: - [common-task-1, common-task-2]
-
Комбинированный вариант указания заданий:
tasks: - name: common-task-1 - name: common-task-2 - name: common-task-3 workflows: my-workflow: tasks: - common-task-1 - [common-task-2, common-task-3] - name: my-task cubes: ...