Параллелизм действий GitHub

Я создаю рабочий процесс в GitHub Actions, и у меня возникают проблемы с параллелизмом и блокируемыми ресурсами.

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

Поэтому я создал такой вызов рабочего процесса и установил свою группу параллелизма на основе имени моего ресурса.

       on: 
  workflow_call:
    inputs:
      array:
        type: string
        required: true
                
concurrency:
  group: pytest-${{ inputs.array }}
  cancel-in-progress: false  


jobs:
  test:
    ...

Рабочий процесс, который вызывает описанный выше рабочий процесс, запускается при выполнении push-уведомления, поэтому один и тот же рабочий процесс может быть запущен одновременно. Я хочу иметь возможность протестировать ресурс, который в настоящее время не тестируется. Поэтому я попытался создать второе задание, которое вызывало бы рабочий процесс с другим именем ресурса, если бы оно было отменено. Но я получаю сообщение об ошибке, в котором говорится, что мне не разрешено это делать, поскольку я не могу вызвать рабочий процесс, очередь которого заполнена.

       on: 
  workflow_call:
    inputs:
      array:
        type: string
        required: true
                
concurrency:
  group: pytest-${{ inputs.array }}
  cancel-in-progress: false  


jobs:
  test:
    ...
 
  test_diff_array:
     needs: [test]
     if: {{ cancelled() }}
     uses: this/workflow/path@master
     with:
        array: diff_array_name

Так что хз что делать. Есть ли какой-нибудь блокируемый пул ресурсов, такой как Дженкинс? Или ш

PS Я не хочу использовать какие-либо публичные действия github.

Я пытался найти способы сделать запираемые ресурсы, как в Jenkins. Пробовал использовать параллелизм github

0 ответов

Другие вопросы по тегам