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"
enable = true
timestamp = "none"
type = true
[[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"
os = "all"
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 | строка | | путь к файлу с настройкой задачи (все другие ключи игнорируется) |