Циклы могут быть реализованы в рамках рабочего процесса для повторения набора задач на основе заданных условий.
Циклы выполняются последовательно. Максимум 4 шага могут выполняться параллельно.
Доступ к настройкам цикла можно получить либо на вкладке конфигурации блока, либо, щёлкнув правой кнопкой мыши на блоке, выбрав .
Настройки цикла требуют список объектов для работы с ними:
-
Простые, одиночные значения, которые затем могут использоваться в параметрах задач, таких как
{{ @item }}. -
Объект .JSON, где каждый элемент в объекте может быть адресован по его ключу, например,
{{ @item.key }}.
Доступ к агрегированным результатам цикла
К результатам всех итераций можно получить доступ в виде массива .JSON после завершения цикла. Результат каждой итерации должен быть валидным файлом .JSON.
Существует четыре типа циклов, которые могут быть определены и выбираются в поле :
-
withSequence
-
withItems
-
withComplexItems
-
withParam
Цикл withSequence позволяет выполнить итерацию по последовательности чисел или сгенерировать диапазон значений в рамках рабочего процесса.
Его можно использовать для повторения набора шагов заданное количество раз или для выполнения операций на основе диапазона значений.
Чтобы создать пример цикла withSequence, выполните следующие шаги:
-
Выберите пустой блок и откройте конфигурацию .
-
Нажмите Edit loop.
Конфигурационные параметры представлены.
-
В поле выберите withSequence.
-
Введите количество итераций цикла в поле .
-
При желании введите значение, с которого должен начинаться и/или заканчиваться цикл.
-
Нажмите Save loop.
-
В конфигурации нажмите Edit parameters.
Представлены параметры конфигурации.
-
В поле введите
{{ @item }}и нажмите Save parameters.Это значение будет преобразовано во время выполнения.
Например, если счетчик установлен на 3, а начальное значение равно 2, результаты этого цикла будут:
-
loop list => ["2", "3", "4"] -
{{ @item }} => 2или3или4, в зависимости от итерации
Цикл withItems позволяет выполнять итерацию по списку элементов.
Он может быть использован, когда необходимо выполнять операции на основе списка элементов.
Чтобы создать пример цикла withItems, выполните следующие шаги:
-
Выберите пустой блок и откройте конфигурацию .
-
Нажмите Редактировать цикл.
Конфигурационные параметры представлены.
-
В поле выберите withItems
-
Введите
enв поле и нажмите +Item (создается еще одно поле ). -
Введите
deво втором поле и создайте третье поле. -
Введите
frв третьем поле и создайте четвертое поле. -
Введите
usв четвертом поле . -
Нажмите Save loop.
-
В конфигурации нажмите Edit parameters.
Представлены параметры конфигурации.
-
В поле введите
{{ @item }}и нажмите Save parameters.Это значение будет преобразовано во время выполнения.
Результаты этого цикла будут итерацией по списку языковых кодов:
-
loop list => ["en", "de", "fr", "ua"] -
{{ @item }} => enилиde .. ua
Цикл withComplexItems позволяет выполнять итерацию по списку объектов.
Его можно использовать, когда нужно выполнять операции на основе списка сложных элементов.
Чтобы создать пример цикла withComplexItems, выполните следующие шаги:
-
Выберите пустой блок и откройте конфигурацию .
-
Нажмите Edit loop.
Конфигурационные параметры представлены.
-
В поле выберите withComplexItems
-
Нажмите +Key:value, чтобы добавить второй ключ.
-
Для введите следующее:
-
-
: имя
-
: Проект 1
-
-
-
: Идентификатор
-
: 11
-
-
-
Нажмите +Object, чтобы добавить второй объект, а +Key:value — для второго ключа.
-
Для введите следующее:
-
-
: имя
-
: Проект 2
-
-
-
: Идентификатор
-
: 22
-
Пример настроек:
-
-
В конфигурации нажмите Edit parameters.
Представлены параметры конфигурации.
-
В поле введите
{{ @item.name }}и нажмите Save parameters. Это значение будет преобразовано во время выполнения.
Результаты этого цикла будут итерацией по списку проектов:
-
loop list=>[ { "name": "Проект 1", "id": 11 }, { "name": "Проект 2", "id": 22 } ] -
{{ @item }}=>{ "name": "Проект 1", "id": 11 } -
{{ @item.name }}=>Project 1 -
{{ @item.id }}=>11
Цикл withParam позволяет выполнить итерацию по динамическому списку, который является результатом любой предыдущей задачи или триггера.
Этот цикл используется только в качестве справочного файла в поле параметров.
Например:
Результаты задачи (Strings: Опубликовать релиз):
{
"created_at": "2015-01-28T09:52:53Z",
"environments": ["development", "production"],
"id": "abcd1234cdef1234abcd1234cdef1234",
"locales": [
{
"code": "en-GB",
"id": "abcd1234cdef1234abcd1234cdef1234",
"name": "Английский"
},
{
"id": "abcd5678cdef5678abcd5678cdef5678",
"name": "Немецкий",
"code": "de_DE"
}
],
"platforms": ["android"],
"project": {
"created_at": "2015-01-28T09:52:53Z",
"id": "abcd1234cdef1234abcd1234cdef1234",
"main_format": "xml",
"name": "Мой Android проект"
"updated_at": "2015-01-28T09:52:53Z"
},
"updated_at": "2015-01-28T09:52:53Z",
"версия": 1
}
Если настройки цикла установлены с {{ $.locales }}, тогда:
-
loop list=>[ { "code": "en-GB", "id": "abcd1234cdef1234abcd1234cdef1234", "name": "Английский" }, { "id": "abcd5678cdef5678abcd5678cdef5678", "name": "Немецкий", "code": "de_DE" } ] -
Первый
{{ @item }}=>{ "code": "en-GB", "id": "abcd1234cdef1234abcd1234cdef1234", "name": "Английский" } -
{{ @item.code }}=>en-GB -
{{ @item.name }}=>English
Или если {{ $.environments }} является справочным файлом, тогда:
-
loop list=>["разработка", "производство"] -
{{ @item }}=>developmentилиproduction