Задания (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:
                ...
            

См. также