Skip to content

Зависимости

Зависимость - правило, определяющее условие для отложенного запуска задачи. Зависимости позволяют организовать запуск задач на основе состояния других задач.

Описание

Зависимость, как часть конфигурации задачи, содержит:

  • идентификатор задачи, от которой зависит текущая задача
  • условие запуска задачи

Условие запуска задачи определяется на основе состояния другой задачи.

Формат

Описание зависимости имеет четко определенный формат.

json
{
  "taskId": "%идентификатор задачи, от которой зависит текущая%",
  "condition": "%условие запуска%"
}

Пример

Вернемся к нашему примеру с браузером и текстовым файлом.

Предположим, что нам нужно открыть текстовый файл только после того, как браузер будет закрыт.

Задача open-file будет иметь зависимость от задачи open-browser, которая должна находиться в состоянии completed.

json
{
  "id": "some-project",
  "tasks": [
    {
      "id": "open-browser",
      "options": {
        "command": "firefox",
        "arguments": ["https://example.com"]
      }
    },
    {
      "id": "open-file",
      "options": {
        "command": "open",
        "arguments": ["/tmp/file.txt"]
      },
      "dependencies": [
        {
          "taskId": "open-browser",
          "condition": {
            "status": "completed"
          }
        }
      ]
    }
  ]
}

Условие может быть описано в виде строки JavaScript-like логического выражения. Такой вариант подойдет для описания сложных и вариативных условий.

json
{
  "taskId": "open-browser",
  "condition": "status==='completed'"
}

TIP

Подробнее о конфигурации зависимостей см. в справочнике.

Порядок выполнения

По умолчанию Runium запускает задачи в порядке их определения в конфигурации проекта. Если у задачи есть зависимости, ее запуск будет отложен до момента, пока все зависимости не будут выполнены.

Циклические зависимости

Runium автоматически обнаруживает циклические зависимости и предотвращает их выполнение.