Skip to content

Даешь людям инструмент для выполнения повседневных задач!

License

Notifications You must be signed in to change notification settings

agorinenko/TaskManager

Repository files navigation

TaskManager

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

Требования

  • Java Runtime Environment Version 8.0
  • Семейства операционных систем Windows или Linux
  • Поддержка баз данных MS SQL, PostgreSQL

Функциональность

Прочее

Установка для операционных систем Windows

  1. Скачайте последнюю версию дистрибутива
  2. Распакуйте архив в нужную директорию. Назовем её C:\tm_distr
  3. Добавьте переменную окружения TM_HOME Windows, указав в качестве значения путь к директории распаковки архива, например, C:\tm_distr
  4. Отредактируйте переменную среды PATH Windows, добавив в конец переменной путь к директории распаковки архива, например, C:\tm_distr
  5. Откройте консоль Windows
	cmd

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

	tm help

Установка для операционных систем Linux

В работе

Доступные действия

Общие соглашения

Наименование действия - параметр вызова приложения без разделителя ":". Возможена передача нескольких действий для выполнения
Параметры действия - перечень параметров вызова приложения с разделителем ":"
Пример вызова:

tm "db" "o:push" "c:test comment"

db - параметр указывает, что будет выполнена команда работы с базой данных
o - параметр вызова комманды db, значение которого равно push
c - параметр вызова комманды db, значение которого равно test comment

Файл-версия - файл, содержащий в своем наименовании временную метку его создания. Файлы-версии очень полезны в командной разработке. Создавая новую версию, разработчик не заботится о конфликте наименований файлов и порядке их выполняения. Файлы-версий используются в командах управления версией схемы баз данных, а также в команде развертывания скриптов
Примеры файлов-версий. Обратите внимание на то, что файл 20171102135753949_GetLatestVersion.ps1 выполнится ранее файла 20171102170141781_BuildProject.ps1, т.к. имеет временную метку в прошлом по отношению к последнему

2017110218174843_file.ps1  
20171115122255653_file.sql
20171102135753949_GetLatestVersion.ps1
20171102170141781_BuildProject.ps1

Действие help

Вывод информации о приложении

tm help

Действие generate

Генерация файла-версии. Служит для создания нового файла-версии. Основная аудитория - разработчики. Так, передав параметр t:sql, программа сгенерирует новый файл-версию для развертывания артефактов базы данных. Передав параметр t:ps1, программа сгенерирует новый файл-версию скрипта Power Shell.

tm generate "t:sql" "n:test" "stamp:true" "out:out/my_project"
tm generate "t:ps1"

Краткая нотация:

tm g "t:sql"
tm g "t:ps1"
tm g "t:ps1" "n:GetLatestVersion" (сгенерирует 20171102135753949_GetLatestVersion.ps1)

Параметры вызова

t - тип файла
n - наименование файла
stamp - использовать метку времени в именовании файла. Доступные значения true/false. true по умолчанию
out - директория, где будут создаваться файлы. out по умолчанию

Действие db

Выполнение операций с базой данных. Ведение версий схемы баз данных. Поддержка работы с Postgres и MS SQL Server. Указание разделителя, наименования базы данных и параметров подключения производится в файле настроек settings.xml, параметрах среды исполнения, либо в переменных запроса db.separator, db.url, db.name, db.user, db.pwd
Пример:

tm db "o:init" "db.url:jdbc:postgresql://localhost:5432/" "db.name:test_db" "db.user:postgres" "db.pwd:MyPassword" "db.separator:--SEP--"

Разделитель --SEP-- в файле-версии

Используйте разделитель --SEP-- для информирования программы об окончании пакета инструкций SQL. Программа интерпретирует разделитель --SEP-- как сигнал о том, что следует отправить текущий пакет инструкций SQL серверу баз данных.
Пример скрипта файла-версии:

IF OBJECT_ID('err.ERROR_SET', 'U') IS NOT NULL   
 DROP TABLE err.ERROR_SET;   
--SEP--   
IF OBJECT_ID ('err._WRITE_ERROR', 'P' ) IS NOT NULL   
  DROP PROCEDURE err._WRITE_ERROR;   
--SEP--   
IF EXISTS (SELECT name FROM sys.schemas WHERE name = N'err')   
  BEGIN   
    DROP SCHEMA err;   
  END   
--SEP--   
CREATE SCHEMA [err] AUTHORIZATION [dbo];   

Операция init

Инициализация базы данных. Создание, а также развертывание вспомогательной схемы ver для ведения версионности базы данных

tm db "o:init"

Параметры вызова

onlyschema - устанавливает флаг, требуется ли пересоздавать базу данных или развернуть только вспомогательную схему. true - развернуть только схему версий

Операция remove

Полное удаление базы данных

tm db "o:remove"

Операция push

Обновление базы данных до актуальной версии на основе файлов-версий

tm db "o:push"
tm db "o:push" "v:20170721160750754" "out:out/my_project"

Параметры вызова

out - директория (включая вложенные в неё директории), где будет произведен поиск файлов-версий. out по умолчанию
v - установить только указанный файл-версию

Ответ в виде таблицы со следующими колонками

Timestamp - временная метка файла-версии
Status - статус операции(MISSED (установка пропущена), OK(установка успешна), INSTALL(установка была произведена ранее))
Name - наименование файла-версии

Операция status

Получение информации о файлах-версиях базы данных и их состоянии

tm "db" "o:status"

Ответ в виде таблицы со следующими колонками

Timestamp - временная метка файла-версии
Local - статус присутствия файла-версии на локальном диске(TRUE(файл-версия установлен на удаленной бд и присутствует на локальном диске), FALSE(файл-версия установлен на удаленной бд, но не присутствует на локальном диске))
Remote - статус установки файла-версии на удаленной бд(TRUE(файл-версия установлен на удаленной бд и присутствует на локальном диске), FALSE(файл-версия не установлен на удаленной бд, но присутствует на локальном диске))
Author - автор файла-версии
Name - наименование файла-версии

Операция delete

Удаление файла-версии базы данных для последующего повторного развертывания. Развернутые артефакты базы данных не удаляются.

tm "db" "o:delete" "v:2017072015512882"

Для удаления последней развернутой версии используйте команду

tm "db" "o:delete"

Параметры вызова

out - директория (включая вложенные в неё директории), где будет произведен поиск файлов-версий. out по умолчанию
v - удалить только указанный файл-версию

Действие ps

Выполнение всех скриптов файлов-версий в PowerShell. Все переданные команде аргументы будут транслированы в исполняемую среду PowerShell. Для работы с русскими символами установите кодировку консоли, выполнив "chcp 1251"

tm ps
tm ps "v:20170721160750754" "out:out/my_project"
tm ps "v:20170721160750754" "out:out/my_project" "env:dev"

Параметры вызова

out - директория (включая вложенные в неё директории), где будет произведен поиск файлов-версий. out по умолчанию
v - выполнить только указанный файл-версию

Действие plan

Выполнение последовательности действий, описанной в JSON файле. Также служит для автоматизации процесса развертывания приложений в различных средах.
Пример последовательного выполнения комманд, описанных в файле init_and_upgrade_db.json

tm "plan" "f:init_and_upgrade_db"

Пример последовательного выполнения комманд, описанных в файле plan.json. Краткая нотация

tm "p" 

Параметры вызова

f - файл, описывающий действия и порядок их следования

Пример файла init_and_upgrade_db.json. Описывается сценарий инициализации базы данных и её обновление до последней версии

{
  "commands": [
    {
      "name": "db",
      "params": [ "o:init" ]
    },
    {
      "name": "db",
      "params": [ "o:push" ]
    }
  ]
}

Действие copy

Копирование директорий. Все файли и папки в конечном расположении будут удалены.
Копирование директории install с файлами в сетевую папку \172.26.72.233\install

tm "copy" "from:..\install" "to:\\172.26.72.233\install" 

Параметры вызова

from - директория, откуда будет произведено копирование. Возможно указать относительный путь
to - директория, куда будет произведено копирование

Действие gmail

Отправка почтового сообщения через сервера GMail

tm gmail "from:ivan@gmail.com" "pass:MyPassword123" "to:bob@mail.ru" "subj:Привет!" "body:Я Иван!"

from - email пользователя от лица кого отправляется почтовое сообщение
pass - пароль пользователя от лица кого отправляется почтовое сообщение
to - email пользователя кому отправляется почтовое сообщение
subj - тема письма
body - сообщение

Действие info

Выводит информацию о запуске приложения

tm info "t1:v1" "env:dev"

Пример вывода

Version: 1.0.0.1

Home: D:\tm_distr

Base settings dir: D:\tm_distr\settings

Base script dir: D:\tm_distr\settings\assets\pg

Out script dir: dir1

Params: 
t1:v1
out:dir1
env:dev
param1:1

Version - версия сборки
Home - домашняя директория развертывания
Base settings dir - директория расположения файлов настройки
Base script dir - директория расположения файлов скриптов баз данных
Out script dir: - директория выгрузки

About

Даешь людям инструмент для выполнения повседневных задач!

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages