https://github.com/e5r/e5r.simpleautodeployer
Simple Automatic Deployer
https://github.com/e5r/e5r.simpleautodeployer
Last synced: 2 months ago
JSON representation
Simple Automatic Deployer
- Host: GitHub
- URL: https://github.com/e5r/e5r.simpleautodeployer
- Owner: e5r
- License: mit
- Created: 2014-10-24T20:17:55.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2015-04-02T22:29:58.000Z (about 10 years ago)
- Last Synced: 2025-01-25T08:11:16.431Z (4 months ago)
- Language: C#
- Size: 605 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
E5R.SimpleAutoDeployer
======================Simple Automatic Deployer
Sistema simples e automático para implementação de softwares.
## Ideia basica
* e5rsad.exe escutando as mudanças nos diretórios:
* __/wainting__: Tarefas em espera [[provavelmente só esta é suficiente]]
* __/initiated__: Tarefas iniciadas
* __/completed__: Tarefas completadas
* As tarefas são descritas em arquivos _JSON_;
* e5rsad.exe mantem uma fila das tarefas
* Quando um arquivo novo é detectado um objeto __TaskBase__ é criado e incluído na fila`__waiting__;
* Após a conclusão de uma tarefa, e/ou de tempos em tempos a próxima tarefa é iniciada:
* Aí a mesma é removida do diretório (e da fila) __waiting__ e movida para __initiated__;
* Quando uma tarefa é finalizada (com sucesso ou erro) a mesma é movida da fila (e do diretório) __initiated__ para __completed__;
* E a próxima tarefa (se ouver é iniciada)### Arquivo de tarefas
Dentro de cada diretório, uma tarefa (mudar para "um arquivo de deploy") é descrita por um arquivo __JSON__.
```json
{
"deploy_id": "000001",
"steps": [
{
"task": "CheckoutSVN",
"params": {
"repository": "http://svn.company.com",
"user": "UserName",
"password": "Password",
"path": "tags/v1.0.1",
"revision": "767687678"
}
},
{
"task": "MSBuild",
"params": {
"target": "Main.sln",
"extra_params": "/NoLogo /NoConsoleLogger"
}
},
{
"task": "script_powershell",
"params": {
"script": "build/custom.ps1"
}
}
],
"output": {
/* The output information of execution */
}
}
```Por segurança, é necessário haver um arquivo de deploy's permitidos.
```json
[
{ "id": "APP_001", "name": "Application One" },
{ "id": "APP_002", "name": "Application Two" }
]
```