UNPKG

ci-executer

Version:
109 lines (88 loc) 5.98 kB
# CI Executer ## Информация Утилита запускает последовательность задач исходя из среды запуска. ## Оглавление - [Установка](#install) - [Ключи запуска](#launch) ## <a name="install"></a> Установка и использование пример установки: `npm install ci-executer -g` вызов справки: `ci-executer -h` пример запуска: `ci-executer --config ./config.toml` ## <a name="launch"></a> Таблица ключей запуска Ключ | Описание ----------------- | ----------- --version, -v | вывести номер версии приложения --help, -h | вызвать справку по ключам запуска --config, -c | путь к файлу конфигурации в формате toml или json, (переменная среды: CI_EXECUTER_CONFIG_PATH) --scope, -s | Имя пространства выполнения, (переменная среды: CI_EXECUTER_SCOPE) ## <a name="configuration"></a> Конфигурация Программа настраивается через файл конфигурации двух форматов TOML или JSON. Так же можно настраивать через переменные среды, которые будут считаться первичными. ### Секции файла конфигурации - **logger** - настройка логгера (переменная среды: CI_EXECUTER_LOGGER) - **jobs[]** - массив задач (переменная среды: CI_EXECUTER_JOBS) ### Пример файла конфигурации config.toml ```toml [logger] # настройка логгера mode = "prod" # режим (prod или dev или debug) enable = true # активация логгера timestamp = "none" # выводить время лога (none, time или full) type = true # выводить тип лога (true или false) [[jobs]] # массив задач name = "job1" # имя задачи, должно быть уникально enable = true # активация задачи exec = "echo hello" # строка выполнения allow_failure = false # разрешение на неуспех задачи logs = false # отображение логов задачи description = "My job1" # описание задачи (Не обязательный) scope = "default" # пространство запуска [jobs.env] # дополнительные переменные среды ENV_KEY1 = "key1-val" ENV_KEY2 = "key2-val" [jobs.when] # условия запуска environment = "all" # среда выполнения. all, local и ci os = "all" # ОС выполнения. all, win и linux env = [ # Список переменных среды. Если должно совпадать значение, то "ENV_KEY1", # нужно указать его через равно. "ENV_KEY2=key2-val", "^ENV_KEY3", "^ENV_KEY4=key4-val" ] [[jobs]] include = "job.json" # путь к файлу с настройкой задачи (все другие ключи игнорируется) [[jobs]] name = "job2" enable = true exec = "echo hello" allow_failure = false logs = true description = "My job2" scope = "default" [jobs.env] ENV_KEY1 = "key1-val" ENV_KEY2 = "key2-val" [jobs.when] environment = "ci" os = "win" env = [] ``` ### Таблица параметров конфигурации | Параметр | Тип | Значение | Описание | | ----- | ----- | ----- | ----- | | logger.mode | строка | prod | режим отображения prod, dev или debug | | logger.enable | логический | true | активация логгера | | logger.timestamp | логический | false | выводить время лога (true или false) | | logger.type | логический | true | выводить тип лога (true или false) | | jobs | массив | [] | массив задач | | jobs[].name | строка | | имя задачи, должно быть уникально | | jobs[].enable | логический | true | активация задачи | | jobs[].exec | строка | | строка выполнения | | jobs[].allow_failure | логический | false | разрешение на неуспех задачи | | jobs[].logs | логический | false | отображение логов задачи | | jobs[].description | строка | | описание задачи | | jobs[].scope | строка | default | пространство запуска | | jobs[].env | объект | {} | дополнительные переменные среды | | jobs[].when | объект | {} | условия запуска | | jobs[].when.environment | объект | {} | среда выполнения. all, local и ci | | jobs[].when.os | объект | {} | ОС выполнения. all, win и linux | | jobs[].when.env | массив | строка[] | список переменных среды. Если должно совпадать значение, то нужно указать его через равно | | jobs[].include | строка | | путь к файлу с настройкой задачи (все другие ключи игнорируется) |