ci-executer
v0.2.16
Published
Job executer for CI
Downloads
4
Readme
CI Executer
Информация
Утилита запускает последовательность задач исходя из среды запуска.
Оглавление
Установка и использование
пример установки: npm install ci-executer -g
вызов справки: ci-executer -h
пример запуска: ci-executer --config ./config.toml
Таблица ключей запуска
Ключ | Описание ----------------- | ----------- --version, -v | вывести номер версии приложения --help, -h | вызвать справку по ключам запуска --config, -c | путь к файлу конфигурации в формате toml или json, (переменная среды: CI_EXECUTER_CONFIG_PATH) --scope, -s | Имя пространства выполнения, (переменная среды: CI_EXECUTER_SCOPE)
Конфигурация
Программа настраивается через файл конфигурации двух форматов TOML или JSON. Так же можно настраивать через переменные среды, которые будут считаться первичными.
Секции файла конфигурации
- logger - настройка логгера (переменная среды: CI_EXECUTER_LOGGER)
- jobs[] - массив задач (переменная среды: CI_EXECUTER_JOBS)
Пример файла конфигурации config.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 | строка | | путь к файлу с настройкой задачи (все другие ключи игнорируется) |