liri 0.2.1 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|