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

См. также