liri 0.2.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +4 -2
- data/.rubocop.yml +5 -1
- data/Gemfile +3 -0
- data/Gemfile.lock +67 -7
- data/README.md +3 -0
- data/Rakefile +5 -0
- data/bash_script_examples.sh +3 -1
- data/dummy-app/spec/dummy/dummy_spec.rb +11 -0
- data/exe/liri +26 -7
- data/lib/agent/agent.rb +120 -108
- data/lib/all_libraries.rb +5 -0
- data/lib/common/benchmarking.rb +11 -16
- data/lib/common/compressor/zip.rb +3 -2
- data/lib/common/duration.rb +28 -0
- data/lib/common/hardware.rb +29 -0
- data/lib/common/log.rb +59 -17
- data/lib/common/manager_data.rb +4 -4
- data/lib/common/progressbar.rb +3 -3
- data/lib/common/setup.rb +14 -4
- data/lib/common/source_code.rb +2 -2
- data/lib/common/tests_result.rb +72 -31
- data/lib/common/text_time_parser.rb +51 -0
- data/lib/common/tty_progressbar.rb +70 -0
- data/lib/common/unit_test/rspec.rb +6 -33
- data/lib/common/unit_test/rspec_result_parser.rb +47 -0
- data/lib/hash_extend.rb +15 -6
- data/lib/liri.rb +29 -21
- data/lib/manager/credential.rb +15 -1
- data/lib/manager/manager.rb +471 -165
- data/lib/task.rb +6 -2
- data/liri.gemspec +6 -6
- data/template/liri-config.yml +74 -30
- metadata +15 -10
- data/config/locales/to_duration_es.yml +0 -25
data/lib/task.rb
CHANGED
@@ -5,9 +5,13 @@
|
|
5
5
|
module Liri
|
6
6
|
module Task
|
7
7
|
class << self
|
8
|
+
def tests_files(source_code_folder_path)
|
9
|
+
source_code = Liri::Common::SourceCode.new(source_code_folder_path,"", "", Liri.compression_class, Liri.unit_test_class)
|
10
|
+
source_code.all_tests
|
11
|
+
end
|
12
|
+
|
8
13
|
def tests_count(source_code_folder_path)
|
9
|
-
|
10
|
-
source_code.all_tests.size
|
14
|
+
tests_files(source_code_folder_path).size
|
11
15
|
end
|
12
16
|
end
|
13
17
|
end
|
data/liri.gemspec
CHANGED
@@ -48,18 +48,18 @@ Gem::Specification.new do |spec|
|
|
48
48
|
# Se usa para obtener el código fuente del Manager desde el Agent
|
49
49
|
spec.add_runtime_dependency('net-scp', '~> 3')
|
50
50
|
|
51
|
-
# A Ruby
|
51
|
+
# A simple Ruby natural language parser for elapsed time. https://github.com/henrypoydar/chronic_duration
|
52
52
|
# Se usa para convertir un tiempo en segundos a un formato más legible
|
53
|
-
spec.add_runtime_dependency('
|
54
|
-
|
55
|
-
# Ruby internationalization and localization (i18n) solution. https://github.com/ruby-i18n/i18n
|
56
|
-
# Este es un requerimiento de la gema to_duration
|
57
|
-
spec.add_runtime_dependency('i18n', '~> 1')
|
53
|
+
spec.add_runtime_dependency('chronic_duration', '~> 0')
|
58
54
|
|
59
55
|
# The ultimate text progress bar library for Ruby!. https://github.com/jfelchner/ruby-progressbar
|
60
56
|
# Para mostrar barras de progreso
|
61
57
|
spec.add_runtime_dependency('ruby-progressbar', '~> 1')
|
62
58
|
|
59
|
+
# A flexible and extensible progress bar for terminal applications. https://github.com/piotrmurach/tty-progressbar
|
60
|
+
# Para mostrar barras de progreso
|
61
|
+
spec.add_runtime_dependency('tty-progressbar', '~> 0')
|
62
|
+
|
63
63
|
# Terminal Table is a fast and simple, yet feature rich table generator written in Ruby. https://github.com/tj/terminal-table
|
64
64
|
# Para mostrar resumen de resultados
|
65
65
|
spec.add_runtime_dependency('terminal-table', '~> 3')
|
data/template/liri-config.yml
CHANGED
@@ -1,31 +1,75 @@
|
|
1
1
|
# Este archivo .yml define ciertas configuraciones para la ejecución del sistema
|
2
|
-
#
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
# Configuración del
|
31
|
-
|
2
|
+
# Configuraciones exclusivas del Manager
|
3
|
+
manager:
|
4
|
+
# Define cada cuantos segundo el Manager enviará un broadcast UDP a la red para sondear agentes
|
5
|
+
udp_request_delay: 3
|
6
|
+
# Cantidad de archivos de tests a ejecutar en cada tanda
|
7
|
+
test_files_by_runner: 30
|
8
|
+
# Configuraciones que definen que barras se muestran o no
|
9
|
+
bar:
|
10
|
+
# Mostrar o no el progreso de envío de código fuente a los agentes
|
11
|
+
share_source_code: true
|
12
|
+
# Configuraciones que definen que se imprimen al terminar la ejecución de las pruebas
|
13
|
+
print:
|
14
|
+
table:
|
15
|
+
# Configuración para imprimir un resumen del proceso realizado por los agentes
|
16
|
+
summary: true
|
17
|
+
# Configuración para imprimir un resumen detallado del proceso realizado por los agentes
|
18
|
+
detailed: false
|
19
|
+
column:
|
20
|
+
failed_files: true # Muestra los archivos fallados en la tabla
|
21
|
+
files_load: true # Muestra el tiempo que tardó Rspec en cargar los archivos de tests
|
22
|
+
finish_in: true # Muestra el tiempo que tardó el Agent en ejecutar los tests
|
23
|
+
batch_run: true # Muestra el tiempo que pasó desde que el Manager obtiene las pruebas a ejecutar, las envía y recibe los resultados
|
24
|
+
share_source_code: true # Muestra el tiempo que tardan los Agents en obtener el código fuente y descomprimirlo
|
25
|
+
failures:
|
26
|
+
summary: false # Muestra una tabla que resume los tiempos de ejecución por cada Agent
|
27
|
+
detailed: false # Muestra una tabla detallada de los tiempo de ejecución de cada tanda enviada a los Agents
|
28
|
+
# Configuraciones compartidas entre Manager y Agent
|
29
|
+
general:
|
30
|
+
# Configuración del nombre del archivo de código fuente comprimido enviado a los agentes
|
31
|
+
# Obs.: Puede que NO sea útil para el usuario poder cambiar este nombre
|
32
|
+
compressed_file_name: compressed_source_code
|
33
|
+
# Define las carpetas que deben ignorarse en la compresión del código fuente. Debe ir separado por comas
|
34
|
+
# y debe haber un espacio después de ignored_folders_in_compress:
|
35
|
+
ignored_folders_in_compress: .git,liri,documents,installers,log,logs
|
36
|
+
# Define a cuantos digitos se van a redondear los tiempos mostrados en pantalla.
|
37
|
+
times_round: 0
|
38
|
+
# Define el tipo de redondeo a utilizar. floor para piso, roof para techo.
|
39
|
+
# El que da mejores resultados según las pruebas realizadas es usar times_round 0 y times_round_type floor
|
40
|
+
times_round_type: floor
|
41
|
+
# Ej.:
|
42
|
+
# Con times_round 0 y times_round_type floor, 3.5516 se convierte a 3s
|
43
|
+
# Con times_round 1 y times_round_type floor, 3.5516 se convierte a 3.5s
|
44
|
+
# Con times_round 2 y times_round_type floor, 3.5516 se convierte a 3.55s
|
45
|
+
# Con times_round 0 y times_round_type roof, 3.5516 se convierte a 4s
|
46
|
+
# Con times_round 1 y times_round_type roof, 3.5516 se convierte a 3.6s
|
47
|
+
# Con times_round 2 y times_round_type roof, 3.5516 se convierte a 3.55s
|
48
|
+
# Configuraciones de logs
|
49
|
+
log:
|
50
|
+
# Configuración del log mostrado en la terminal
|
51
|
+
stdout:
|
52
|
+
# Define si se muestra el log de ejecución del programa en línea de comando. Puede ser true o false.
|
53
|
+
# Por defecto siempre se imprimirá el log en un archivo dentro de la carpeta logs
|
54
|
+
# Si se pone a true, interfiere con la barra de progreso del Manager, mejor tenerlo en false
|
55
|
+
show: false
|
56
|
+
# Define los colores del texto del log. Puede ser none (no muestra colores), severity (colorea código de error),
|
57
|
+
# severity_date (colorea código de error y fecha), full (colorea el texto entero).
|
58
|
+
colorize: full
|
59
|
+
# Configuración del log guardado en los archivos .log
|
60
|
+
file:
|
61
|
+
# Puede ser none, severity o full
|
62
|
+
colorize: full
|
63
|
+
library:
|
64
|
+
# Configuración de la librería de compresión a utilizar para comprimir el código fuente
|
65
|
+
# Valores soportados: Sólo Zip hasta ahora
|
66
|
+
compression: Zip
|
67
|
+
# Configuración de la librería de pruebas unitarias a ejecutar
|
68
|
+
# Valores soportados: Sólo Rspec hasta ahora
|
69
|
+
unit_test: Rspec
|
70
|
+
# Configuración de puertos
|
71
|
+
ports:
|
72
|
+
# Configuración del puerto a través del cual se realizará la primera comunicación entre Manager y Agent
|
73
|
+
udp: 2000
|
74
|
+
# Configuración del puerto a través del cual el Agent y el Manager intercambiarán las pruebas a ejecutar y los resultados de esa ejecución
|
75
|
+
tcp: 2500
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: liri
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rodrigo Fernández
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2022-
|
12
|
+
date: 2022-06-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rubyzip
|
@@ -68,21 +68,21 @@ dependencies:
|
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: '3'
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
|
-
name:
|
71
|
+
name: chronic_duration
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
74
|
- - "~>"
|
75
75
|
- !ruby/object:Gem::Version
|
76
|
-
version: '
|
76
|
+
version: '0'
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
81
|
- - "~>"
|
82
82
|
- !ruby/object:Gem::Version
|
83
|
-
version: '
|
83
|
+
version: '0'
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
|
-
name:
|
85
|
+
name: ruby-progressbar
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
88
|
- - "~>"
|
@@ -96,19 +96,19 @@ dependencies:
|
|
96
96
|
- !ruby/object:Gem::Version
|
97
97
|
version: '1'
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
|
-
name:
|
99
|
+
name: tty-progressbar
|
100
100
|
requirement: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
102
|
- - "~>"
|
103
103
|
- !ruby/object:Gem::Version
|
104
|
-
version: '
|
104
|
+
version: '0'
|
105
105
|
type: :runtime
|
106
106
|
prerelease: false
|
107
107
|
version_requirements: !ruby/object:Gem::Requirement
|
108
108
|
requirements:
|
109
109
|
- - "~>"
|
110
110
|
- !ruby/object:Gem::Version
|
111
|
-
version: '
|
111
|
+
version: '0'
|
112
112
|
- !ruby/object:Gem::Dependency
|
113
113
|
name: terminal-table
|
114
114
|
requirement: !ruby/object:Gem::Requirement
|
@@ -161,7 +161,6 @@ files:
|
|
161
161
|
- bin/yard
|
162
162
|
- bin/yardoc
|
163
163
|
- bin/yri
|
164
|
-
- config/locales/to_duration_es.yml
|
165
164
|
- dummy-app/.gitignore
|
166
165
|
- dummy-app/.rspec
|
167
166
|
- dummy-app/.ruby-gemset
|
@@ -178,6 +177,7 @@ files:
|
|
178
177
|
- dummy-app/lib/dummy/app.rb
|
179
178
|
- dummy-app/lib/dummy/app/version.rb
|
180
179
|
- dummy-app/spec/dummy/app_spec.rb
|
180
|
+
- dummy-app/spec/dummy/dummy_spec.rb
|
181
181
|
- dummy-app/spec/spec_helper.rb
|
182
182
|
- exe/liri
|
183
183
|
- lib/agent/agent.rb
|
@@ -185,13 +185,18 @@ files:
|
|
185
185
|
- lib/all_libraries.rb
|
186
186
|
- lib/common/benchmarking.rb
|
187
187
|
- lib/common/compressor/zip.rb
|
188
|
+
- lib/common/duration.rb
|
189
|
+
- lib/common/hardware.rb
|
188
190
|
- lib/common/log.rb
|
189
191
|
- lib/common/manager_data.rb
|
190
192
|
- lib/common/progressbar.rb
|
191
193
|
- lib/common/setup.rb
|
192
194
|
- lib/common/source_code.rb
|
193
195
|
- lib/common/tests_result.rb
|
196
|
+
- lib/common/text_time_parser.rb
|
197
|
+
- lib/common/tty_progressbar.rb
|
194
198
|
- lib/common/unit_test/rspec.rb
|
199
|
+
- lib/common/unit_test/rspec_result_parser.rb
|
195
200
|
- lib/exe/agent.rb
|
196
201
|
- lib/exe/manager.rb
|
197
202
|
- lib/hash_extend.rb
|
@@ -1,25 +0,0 @@
|
|
1
|
-
es:
|
2
|
-
to_duration:
|
3
|
-
and: y
|
4
|
-
less_than_one_second: Menos de un segundo
|
5
|
-
year:
|
6
|
-
one: año
|
7
|
-
other: años
|
8
|
-
month:
|
9
|
-
one: mes
|
10
|
-
other: meses
|
11
|
-
week:
|
12
|
-
one: semana
|
13
|
-
other: semanas
|
14
|
-
day:
|
15
|
-
one: día
|
16
|
-
other: dias
|
17
|
-
hour:
|
18
|
-
one: hora
|
19
|
-
other: horas
|
20
|
-
minute:
|
21
|
-
one: minuto
|
22
|
-
other: minutos
|
23
|
-
second:
|
24
|
-
one: segundo
|
25
|
-
other: segundos
|