Задания (tasks)

В блоке tasks определяется перечень заданий, которые будут выполняться в рабочем процессе.

Каждое задание содержит в себе набор минимальных логических действий — кубиков. Результатом задания является выполнение всех кубиков.

Примечание

Все кубики одного задания запускаются на одной и той же виртуальной машине (воркере). Поэтому если один кубик изменит окружение воркера, например, установит пакет, создаст или удалит файл и т. д., это окружение останется для всех последующих кубиков, которые выполняются в рамках одного задания. Например, в первом кубике устанавливается пакет runtime для языка Go, во втором выполняется команда go build, а в следующем — go test. Подробнее о наследовании окружения см. на странице Кубики (cubes).

Если кубики запущены в разных заданиях, то они гарантированно будут исполняться на разных воркерах.

По умолчанию задание начинается с клонирования репозитория.

Все задания рабочего процесса запускаются параллельно.

В заданиях и кубиках вы можете использовать переменные окружения, а также секреты.

Вы можете задать настройки конкретного задания как внутри блока 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:
    ...

См. также