chore: se adiciona entorno vivo de desarrollo
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
This commit is contained in:
parent
927c7ce178
commit
5700dfa12c
2
.dev/Procfile
Normal file
2
.dev/Procfile
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
trytond: trytond -d ${DB_NAME} --dev -v -c $SCRIPT_DIR/trytond.cfg
|
||||||
|
monitor: python3 $SCRIPT_DIR/dev.py
|
29
.dev/dev.py
Normal file
29
.dev/dev.py
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
# script para refrescar cambios de xml del modulo de tryton
|
||||||
|
import os
|
||||||
|
import logging
|
||||||
|
|
||||||
|
import inotify.adapters
|
||||||
|
|
||||||
|
SRC = os.environ['SRC']
|
||||||
|
MODULE_NAME = os.environ['MODULE_NAME']
|
||||||
|
DB_NAME = os.environ['DB_NAME']
|
||||||
|
|
||||||
|
def _main():
|
||||||
|
i = inotify.adapters.Inotify()
|
||||||
|
|
||||||
|
i.add_watch(SRC)
|
||||||
|
logging.info("MONITOREANDO ARCHIVOS EN %s", SRC)
|
||||||
|
|
||||||
|
for event in i.event_gen(yield_nones=False):
|
||||||
|
(_, type_names, path, filename) = event
|
||||||
|
(_, ext) = os.path.splitext(filename)
|
||||||
|
|
||||||
|
if ext in ['.py', '.xml']:
|
||||||
|
if os.system("trytond-admin -d {} -u {}".format(DB_NAME, MODULE_NAME)) != 0:
|
||||||
|
raise Exception("fallo trytond-admin")
|
||||||
|
|
||||||
|
logging.info("ACTUALIZADO TRYTOND POR CAMBIO DE ARCHIVO %s", filename)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
_main()
|
43
.dev/run.sh
Executable file
43
.dev/run.sh
Executable file
@ -0,0 +1,43 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# script para iniciar entorno vivo
|
||||||
|
|
||||||
|
|
||||||
|
SCRIPT_DIR=$(dirname `realpath $0`)
|
||||||
|
|
||||||
|
die() {
|
||||||
|
echo $1
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
[ ! -d "$SRC" ] && die "no se ubica ruta en SRC"
|
||||||
|
[ -z "$DB_NAME" ] && die "se requiere variable DB_NAME"
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# dependencias minimas
|
||||||
|
pip3 install psycopg2 proteus inotify honcho
|
||||||
|
|
||||||
|
# instalar dependencias de tryton desde paquete
|
||||||
|
python3 setup.py install
|
||||||
|
|
||||||
|
# usamos enlace al paquete
|
||||||
|
python3 setup.py develop
|
||||||
|
|
||||||
|
# instalar modulo
|
||||||
|
trytond_modules_path=`pip3 show trytond | grep Location | sed -nr 's/Location: +//gp'`/trytond/modules
|
||||||
|
module_name=`cat "$SRC/setup.py" | fgrep -A 1 [trytond.modules] | sed 1d | cut -d '=' -f 1 | tr -d ' \n'`
|
||||||
|
[ ! -d "$trytond_modules_path" ] && die "fallo al ubicar ruta de modulos de trytond"
|
||||||
|
ln -sf "$SRC" "$trytond_modules_path/$module_name"
|
||||||
|
|
||||||
|
# inicializar base de datos
|
||||||
|
# https://docs.tryton.org/projects/server/en/latest/tutorial/module/setup_database.html
|
||||||
|
yes admin | trytond-admin -d ${DB_NAME} --all
|
||||||
|
|
||||||
|
|
||||||
|
# ejecutar servidor
|
||||||
|
export SCRIPT_DIR
|
||||||
|
export MODULE_NAME=$module_name
|
||||||
|
export DB_NAME
|
||||||
|
export SRC
|
||||||
|
|
||||||
|
honcho -d ${SCRIPT_DIR} start
|
2
.dev/trytond.cfg
Normal file
2
.dev/trytond.cfg
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
[web]
|
||||||
|
listen = 0.0.0.0:8000
|
@ -13,12 +13,19 @@
|
|||||||
* git >= 2.30
|
* git >= 2.30
|
||||||
* rake >= 13
|
* rake >= 13
|
||||||
|
|
||||||
### procedimiento
|
### procedimiento en pruebas
|
||||||
|
|
||||||
1. iniciar entorno `rake init`
|
1. iniciar entorno `rake init`
|
||||||
2. iterar con `rake tdd`
|
2. iterar con `rake tdd`
|
||||||
3. detener el entorno `rake down`
|
3. detener el entorno `rake down`
|
||||||
|
|
||||||
|
### entorno vivo de desarrollo
|
||||||
|
|
||||||
|
1. iniciar entorno `rake live:up`
|
||||||
|
2. conectar cliente tryton a `localhost:8000` usuario: `admin` y clave: `admin`
|
||||||
|
1. si desea ver la salida de trytond usar `rake live:tail`
|
||||||
|
3. detener entorno `rake live:down`
|
||||||
|
|
||||||
### consideraciones
|
### consideraciones
|
||||||
|
|
||||||
* evito trabajo innecesario
|
* evito trabajo innecesario
|
||||||
|
23
Rakefile
23
Rakefile
@ -26,6 +26,25 @@ task :down do
|
|||||||
compose('down')
|
compose('down')
|
||||||
end
|
end
|
||||||
|
|
||||||
def compose(*arg)
|
desc 'entorno vivo'
|
||||||
sh "docker-compose -f #{DOCKER_COMPOSE} #{arg.join(' ')}"
|
namespace :live do
|
||||||
|
|
||||||
|
desc 'iniciar entorno'
|
||||||
|
task :up do
|
||||||
|
compose('up', '--build', '-d', compose: 'docker-compose.yml')
|
||||||
|
end
|
||||||
|
|
||||||
|
desc 'monitorear salida'
|
||||||
|
task :tail do
|
||||||
|
compose('logs', '-f', 'app.dev', compose: 'docker-compose.yml')
|
||||||
|
end
|
||||||
|
|
||||||
|
desc 'detener entorno'
|
||||||
|
task :down do
|
||||||
|
compose('down', compose: 'docker-compose.yml')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def compose(*arg, compose: DOCKER_COMPOSE)
|
||||||
|
sh "docker-compose -f #{compose} #{arg.join(' ')}"
|
||||||
end
|
end
|
||||||
|
23
docker-compose.yml
Normal file
23
docker-compose.yml
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
version: '3.9'
|
||||||
|
services:
|
||||||
|
db.dev:
|
||||||
|
image: postgres:12
|
||||||
|
environment:
|
||||||
|
- POSTGRES_USER=tryton
|
||||||
|
- POSTGRES_PASSWORD=tryton
|
||||||
|
- POSTGRES_DB=tryton
|
||||||
|
|
||||||
|
app.dev:
|
||||||
|
image: python:3.9
|
||||||
|
depends_on:
|
||||||
|
- db.dev
|
||||||
|
command: bash .dev/run.sh
|
||||||
|
environment:
|
||||||
|
- DB_NAME=tryton
|
||||||
|
- SRC=/app
|
||||||
|
- TRYTOND_DATABASE_URI=postgresql://tryton:tryton@db.dev:5432/
|
||||||
|
volumes:
|
||||||
|
- .:/app
|
||||||
|
ports:
|
||||||
|
- "8000:8000"
|
||||||
|
working_dir: /app
|
Loading…
Reference in New Issue
Block a user