Задачи (tasks)
В блоке tasks
определяется перечень задач, которые будут выполняться в рабочем процессе.
Каждая задача содержит в себе набор минимальных логических действий — кубиков. Результатом задачи является выполнение всех кубиков.
Вы можете задать настройки конкретной задачи как внутри блока workflows:tasks
, так и в отдельном блоке tasks
и сослаться на него из блока workflows:tasks
. Формат описания задач для обоих вариантов идентичен.
Примеры:
-
Задача внутри блока
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: ...
Поддерживаются следующие параметры:
name
— имя задачи;- cubes — список кубиков, которые будут выполняться в задаче.
cubes
В блоке cubes
определяется перечень минимальных логических действий — кубиков, которые будут выполняться в задаче.
Поддерживаются следующие параметры:
name
— имя кубика;script
— команда, которая будет выполнена в кубике;needs
— список кубиков, которые должны быть выполнены до выполнения текущего.- image — (опционально) Docker-образ, который будет использоваться для выполнения кубика.
image
Блок image
содержит параметры Docker-образа, который будет использоваться для выполнения кубика.
Вы можете указать стандартное имя Docker-образа или путь в конкретном реестре.
Если блок image
не указан, команды будут выполняться в окружении Linux.
Примеры:
-
Указание стандартного имя Docker-образа:
workflows: my-workflow: tasks: - name: my-task cubes: - name: my-cube image: ubuntu:22.04 script: echo "hello world!"
-
Указание пути в конкретном реестре:
workflows: my-workflow: tasks: - name: my-task cubes: - name: my-cube image: cr.yandex/mirror/ubuntu:22.04 script: echo "hello world!"
Если для доступа к реестру нужна аутентификация, то можно использовать в задаче команду docker login
или задать настройки аутентификации в блоке image
, например:
workflows:
my-workflow:
tasks:
- name: my-task
cubes:
- name: my-cube
image:
name: some-docker-registry.com/account-name/ubuntu:22.04
username: username
password: password