Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы может все еще выполняться. Актуальные сведения см. в документации на английском языке.
В настоящее время GitHub AE находится в ограниченном выпуске.

Использование заданий в рабочем процессе

Использование рабочих процессов для выполнения нескольких заданий.

Обзор

Запуск рабочего процесса состоит из одного или нескольких jobs, которые по умолчанию выполняются параллельно. Для последовательного выполнения заданий можно определить зависимости в других заданиях с помощью ключевого слова jobs.<job_id>.needs.

Каждое задание выполняется в среде средства выполнения тестов, указанной в параметре runs-on.

Вы можете выполнять неограниченное количество заданий, если вы не превышаете лимиты по использованию рабочих процессов. Дополнительные сведения см. в разделе "О самостоятельно размещенных средствах выполнения".

Если требуется найти уникальный идентификатор задания, выполняемого в ходе выполнения рабочего процесса, можно использовать API GitHub AE. Дополнительные сведения см. в разделе Действия.

Задание идентификатора для задания

Используйте jobs.<job_id>, чтобы назначить заданию уникальный идентификатор. Ключ job_id представляет собой строку, а значение ключа представляет собой карту данных конфигурации задания. Необходимо заменить <job_id> строкой, уникальной для объекта jobs. <job_id> должен начинаться с буквы или _ и может включать только буквенно-цифровые символы - или _.

Пример. Создание заданий

В этом примере были созданы два задания, и их job_id равны my_first_job и my_second_job.

jobs:
  my_first_job:
    name: My first job
  my_second_job:
    name: My second job

Присвоение имени заданию

Используйте jobs.<job_id>.name для присвоения имени заданию, которое отображается в пользовательском интерфейсе GitHub.

Определение требуемых заданий

Используйте jobs.<job_id>.needs для определения всех заданий, которые должны быть успешно завершены перед выполнением этого задания. Это может быть строка или массив строк. Если задание завершается сбоем или пропущено, все необходимые задания пропускаются, если задания не используют условное выражение, которое приводит к продолжению задания. Если выполнение содержит ряд заданий, которые требуют друг друга, сбой или пропуск применяется ко всем заданиям в цепочке зависимостей с момента сбоя или пропуска.

Пример. Необходимо успешное выполнение зависимых заданий

jobs:
  job1:
  job2:
    needs: job1
  job3:
    needs: [job1, job2]

В этом примере задание job1 должно успешно завершить работу перед началом задания job2, а задание job3 ожидает завершения заданий job1 и job2.

Задания в этом примере выполняются последовательно:

  1. job1
  2. job2
  3. job3

Пример. Успешное выполнение зависимых заданий не требуется

jobs:
  job1:
  job2:
    needs: job1
  job3:
    if: ${{ always() }}
    needs: [job1, job2]

В этом примере в задании job3 используется условное выражение always(), чтобы оно всегда выполнялось после завершения выполнения заданий job1 и job2, независимо от того, завершились ли они успешно. Дополнительные сведения см. в разделе Выражения.