roku_builder 3.13.0 → 4.0.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/.travis.yml +1 -1
- data/CHANGELOG +12 -0
- data/Gemfile.lock +22 -7
- data/Guardfile +3 -3
- data/README.md +22 -398
- data/bin/roku +1 -194
- data/config.json.example +1 -1
- data/intergration/roku_builder/test_core.rb +52 -0
- data/intergration/roku_builder/test_files/core_intergration_test/manifest_template +7 -0
- data/intergration/roku_builder/test_files/core_intergration_test/test.pkg +0 -0
- data/intergration/roku_builder/test_files/inspector_intergration_test/components/rectanglescene.xml +28 -0
- data/intergration/roku_builder/test_files/inspector_intergration_test/images/rde_mm_focus_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/inspector_intergration_test/images/rde_mm_focus_sd.jpg +0 -0
- data/intergration/roku_builder/test_files/inspector_intergration_test/images/rde_splash_fhd.jpg +0 -0
- data/intergration/roku_builder/test_files/inspector_intergration_test/images/rde_splash_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/inspector_intergration_test/images/rde_splash_sd.jpg +0 -0
- data/intergration/roku_builder/test_files/inspector_intergration_test/images/rsgde_bg_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/inspector_intergration_test/images/rsgde_mm_focus_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/inspector_intergration_test/images/rsgde_splash_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/inspector_intergration_test/manifest +21 -0
- data/intergration/roku_builder/test_files/inspector_intergration_test/source/main.brs +23 -0
- data/intergration/roku_builder/test_files/inspector_intergration_test/test.pkg +0 -0
- data/intergration/roku_builder/test_files/linker_intergration_test/components/rectanglescene.xml +29 -0
- data/intergration/roku_builder/test_files/linker_intergration_test/images/rde_mm_focus_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/linker_intergration_test/images/rde_mm_focus_sd.jpg +0 -0
- data/intergration/roku_builder/test_files/linker_intergration_test/images/rde_splash_fhd.jpg +0 -0
- data/intergration/roku_builder/test_files/linker_intergration_test/images/rde_splash_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/linker_intergration_test/images/rde_splash_sd.jpg +0 -0
- data/intergration/roku_builder/test_files/linker_intergration_test/images/rsgde_bg_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/linker_intergration_test/images/rsgde_mm_focus_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/linker_intergration_test/images/rsgde_splash_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/linker_intergration_test/manifest +21 -0
- data/intergration/roku_builder/test_files/linker_intergration_test/source/main.brs +21 -0
- data/intergration/roku_builder/test_files/linker_intergration_test/test.pkg +0 -0
- data/intergration/roku_builder/test_files/loader_intergration_test/components/rectanglescene.xml +29 -0
- data/intergration/roku_builder/test_files/loader_intergration_test/images/rde_mm_focus_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/loader_intergration_test/images/rde_mm_focus_sd.jpg +0 -0
- data/intergration/roku_builder/test_files/loader_intergration_test/images/rde_splash_fhd.jpg +0 -0
- data/intergration/roku_builder/test_files/loader_intergration_test/images/rde_splash_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/loader_intergration_test/images/rde_splash_sd.jpg +0 -0
- data/intergration/roku_builder/test_files/loader_intergration_test/images/rsgde_bg_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/loader_intergration_test/images/rsgde_mm_focus_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/loader_intergration_test/images/rsgde_splash_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/loader_intergration_test/manifest +21 -0
- data/intergration/roku_builder/test_files/loader_intergration_test/source/main.brs +21 -0
- data/intergration/roku_builder/test_files/loader_intergration_test/test.pkg +0 -0
- data/intergration/roku_builder/test_files/monitor_intergration_test/components/rectanglescene.xml +29 -0
- data/intergration/roku_builder/test_files/monitor_intergration_test/images/rde_mm_focus_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/monitor_intergration_test/images/rde_mm_focus_sd.jpg +0 -0
- data/intergration/roku_builder/test_files/monitor_intergration_test/images/rde_splash_fhd.jpg +0 -0
- data/intergration/roku_builder/test_files/monitor_intergration_test/images/rde_splash_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/monitor_intergration_test/images/rde_splash_sd.jpg +0 -0
- data/intergration/roku_builder/test_files/monitor_intergration_test/images/rsgde_bg_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/monitor_intergration_test/images/rsgde_mm_focus_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/monitor_intergration_test/images/rsgde_splash_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/monitor_intergration_test/manifest +21 -0
- data/intergration/roku_builder/test_files/monitor_intergration_test/source/main.brs +21 -0
- data/intergration/roku_builder/test_files/monitor_intergration_test/test.pkg +0 -0
- data/intergration/roku_builder/test_files/navigator_intergration_test/components/rectanglescene.xml +29 -0
- data/intergration/roku_builder/test_files/navigator_intergration_test/images/rde_mm_focus_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/navigator_intergration_test/images/rde_mm_focus_sd.jpg +0 -0
- data/intergration/roku_builder/test_files/navigator_intergration_test/images/rde_splash_fhd.jpg +0 -0
- data/intergration/roku_builder/test_files/navigator_intergration_test/images/rde_splash_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/navigator_intergration_test/images/rde_splash_sd.jpg +0 -0
- data/intergration/roku_builder/test_files/navigator_intergration_test/images/rsgde_bg_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/navigator_intergration_test/images/rsgde_mm_focus_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/navigator_intergration_test/images/rsgde_splash_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/navigator_intergration_test/manifest +21 -0
- data/intergration/roku_builder/test_files/navigator_intergration_test/source/main.brs +21 -0
- data/intergration/roku_builder/test_files/navigator_intergration_test/test.pkg +0 -0
- data/intergration/roku_builder/test_files/packager_intergration_test/components/rectanglescene.xml +29 -0
- data/intergration/roku_builder/test_files/packager_intergration_test/images/rde_mm_focus_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/packager_intergration_test/images/rde_mm_focus_sd.jpg +0 -0
- data/intergration/roku_builder/test_files/packager_intergration_test/images/rde_splash_fhd.jpg +0 -0
- data/intergration/roku_builder/test_files/packager_intergration_test/images/rde_splash_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/packager_intergration_test/images/rde_splash_sd.jpg +0 -0
- data/intergration/roku_builder/test_files/packager_intergration_test/images/rsgde_bg_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/packager_intergration_test/images/rsgde_mm_focus_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/packager_intergration_test/images/rsgde_splash_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/packager_intergration_test/manifest +21 -0
- data/intergration/roku_builder/test_files/packager_intergration_test/source/main.brs +21 -0
- data/intergration/roku_builder/test_files/packager_intergration_test/test.pkg +0 -0
- data/intergration/roku_builder/test_files/profiler_intergration_test/components/rectanglescene.xml +29 -0
- data/intergration/roku_builder/test_files/profiler_intergration_test/images/rde_mm_focus_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/profiler_intergration_test/images/rde_mm_focus_sd.jpg +0 -0
- data/intergration/roku_builder/test_files/profiler_intergration_test/images/rde_splash_fhd.jpg +0 -0
- data/intergration/roku_builder/test_files/profiler_intergration_test/images/rde_splash_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/profiler_intergration_test/images/rde_splash_sd.jpg +0 -0
- data/intergration/roku_builder/test_files/profiler_intergration_test/images/rsgde_bg_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/profiler_intergration_test/images/rsgde_mm_focus_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/profiler_intergration_test/images/rsgde_splash_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/profiler_intergration_test/manifest +21 -0
- data/intergration/roku_builder/test_files/profiler_intergration_test/source/main.brs +21 -0
- data/intergration/roku_builder/test_files/profiler_intergration_test/test.pkg +0 -0
- data/intergration/roku_builder/test_files/scripter_intergration_test/components/rectanglescene.xml +29 -0
- data/intergration/roku_builder/test_files/scripter_intergration_test/images/rde_mm_focus_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/scripter_intergration_test/images/rde_mm_focus_sd.jpg +0 -0
- data/intergration/roku_builder/test_files/scripter_intergration_test/images/rde_splash_fhd.jpg +0 -0
- data/intergration/roku_builder/test_files/scripter_intergration_test/images/rde_splash_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/scripter_intergration_test/images/rde_splash_sd.jpg +0 -0
- data/intergration/roku_builder/test_files/scripter_intergration_test/images/rsgde_bg_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/scripter_intergration_test/images/rsgde_mm_focus_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/scripter_intergration_test/images/rsgde_splash_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/scripter_intergration_test/manifest +21 -0
- data/intergration/roku_builder/test_files/scripter_intergration_test/source/main.brs +21 -0
- data/intergration/roku_builder/test_files/scripter_intergration_test/test.pkg +0 -0
- data/intergration/roku_builder/test_files/tester_intergration_test/components/rectanglescene.xml +29 -0
- data/intergration/roku_builder/test_files/tester_intergration_test/images/rde_mm_focus_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/tester_intergration_test/images/rde_mm_focus_sd.jpg +0 -0
- data/intergration/roku_builder/test_files/tester_intergration_test/images/rde_splash_fhd.jpg +0 -0
- data/intergration/roku_builder/test_files/tester_intergration_test/images/rde_splash_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/tester_intergration_test/images/rde_splash_sd.jpg +0 -0
- data/intergration/roku_builder/test_files/tester_intergration_test/images/rsgde_bg_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/tester_intergration_test/images/rsgde_mm_focus_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/tester_intergration_test/images/rsgde_splash_hd.jpg +0 -0
- data/intergration/roku_builder/test_files/tester_intergration_test/manifest +21 -0
- data/intergration/roku_builder/test_files/tester_intergration_test/source/main.brs +21 -0
- data/intergration/roku_builder/test_files/tester_intergration_test/test.pkg +0 -0
- data/intergration/roku_builder/test_helper.rb +138 -0
- data/intergration/roku_builder/test_inspector.rb +35 -0
- data/intergration/roku_builder/test_linker.rb +32 -0
- data/intergration/roku_builder/test_loader.rb +38 -0
- data/intergration/roku_builder/test_monitor.rb +21 -0
- data/intergration/roku_builder/test_navigator.rb +34 -0
- data/intergration/roku_builder/test_packager.rb +41 -0
- data/intergration/roku_builder/test_profiler.rb +48 -0
- data/intergration/roku_builder/test_scripter.rb +38 -0
- data/intergration/roku_builder/test_tester.rb +21 -0
- data/lib/roku_builder.rb +143 -154
- data/lib/roku_builder/config.rb +17 -40
- data/lib/roku_builder/config_parser.rb +49 -200
- data/lib/roku_builder/config_validator.rb +1 -1
- data/lib/roku_builder/errors.rb +12 -0
- data/lib/roku_builder/git.rb +28 -0
- data/lib/roku_builder/hash.rb +8 -0
- data/lib/roku_builder/manifest.rb +121 -0
- data/lib/roku_builder/options.rb +68 -29
- data/lib/roku_builder/plugin.rb +30 -0
- data/lib/roku_builder/plugins/core.rb +117 -0
- data/lib/roku_builder/plugins/inspector.rb +104 -0
- data/lib/roku_builder/{linker.rb → plugins/linker.rb} +38 -12
- data/lib/roku_builder/plugins/loader.rb +152 -0
- data/lib/roku_builder/{monitor.rb → plugins/monitor.rb} +20 -9
- data/lib/roku_builder/{navigator.rb → plugins/navigator.rb} +136 -88
- data/lib/roku_builder/plugins/packager.rb +194 -0
- data/lib/roku_builder/plugins/profiler.rb +135 -0
- data/lib/roku_builder/plugins/scripter.rb +53 -0
- data/lib/roku_builder/{tester.rb → plugins/tester.rb} +28 -19
- data/lib/roku_builder/stager.rb +48 -12
- data/lib/roku_builder/string.rb +20 -0
- data/lib/roku_builder/util.rb +10 -34
- data/lib/roku_builder/version.rb +1 -1
- data/rakefile +5 -1
- data/roku_builder.gemspec +2 -0
- data/test/roku_builder/plugins/test_core.rb +112 -0
- data/test/roku_builder/plugins/test_inspector.rb +165 -0
- data/test/roku_builder/plugins/test_linker.rb +123 -0
- data/test/roku_builder/plugins/test_loader.rb +115 -0
- data/test/roku_builder/plugins/test_monitor.rb +141 -0
- data/test/roku_builder/plugins/test_navigator.rb +274 -0
- data/test/roku_builder/plugins/test_packager.rb +202 -0
- data/test/roku_builder/plugins/test_profiler.rb +127 -0
- data/test/roku_builder/plugins/test_scripter.rb +110 -0
- data/test/roku_builder/plugins/test_tester.rb +109 -0
- data/test/roku_builder/test_config.rb +51 -35
- data/test/roku_builder/test_config_parser.rb +76 -154
- data/test/roku_builder/test_config_validator.rb +18 -1
- data/test/roku_builder/test_files/{loader_test/manifest → config_parser_test/test.pkg} +0 -0
- data/test/roku_builder/test_files/config_test/config.json +3 -0
- data/test/roku_builder/test_files/controller_commands_test/manifest_template +7 -0
- data/test/roku_builder/test_files/core_test/manifest_template +7 -0
- data/test/roku_builder/test_files/core_test/test.pkg +0 -0
- data/test/roku_builder/test_files/inspector_test/manifest +6 -0
- data/test/roku_builder/test_files/inspector_test/test.pkg +0 -0
- data/test/roku_builder/test_files/linker_test/manifest +6 -0
- data/test/roku_builder/test_files/linker_test/test.pkg +0 -0
- data/test/roku_builder/test_files/loader_test/manifest_template +6 -0
- data/test/roku_builder/test_files/loader_test/test.pkg +0 -0
- data/test/roku_builder/test_files/loader_test/test.zip +0 -0
- data/test/roku_builder/test_files/manifest_test/manifest_comments +6 -0
- data/test/roku_builder/test_files/manifest_test/manifest_template +7 -0
- data/test/roku_builder/test_files/manifest_test/test.zip +0 -0
- data/test/roku_builder/test_files/packager_test/manifest +6 -0
- data/test/roku_builder/test_files/packager_test/scripter_test/manifest +6 -0
- data/test/roku_builder/test_files/packager_test/test.pkg +0 -0
- data/test/roku_builder/test_files/roku_builder_test/config.json +32 -0
- data/test/roku_builder/test_files/scripter_test/manifest +6 -0
- data/test/roku_builder/test_files/scripter_test/test.pkg +0 -0
- data/test/roku_builder/test_files/stager_test/test.pkg +0 -0
- data/test/roku_builder/test_files/tester_test/manifest +6 -0
- data/test/roku_builder/test_files/tester_test/test.pkg +0 -0
- data/test/roku_builder/test_helper.rb +44 -11
- data/test/roku_builder/test_logger.rb +1 -0
- data/test/roku_builder/test_manifest.rb +99 -0
- data/test/roku_builder/test_options.rb +106 -77
- data/test/roku_builder/test_options_plugins.rb +111 -0
- data/test/roku_builder/test_plugin.rb +48 -0
- data/test/roku_builder/test_roku_builder.rb +239 -0
- data/test/roku_builder/test_stager.rb +49 -101
- data/test/roku_builder/test_util.rb +19 -4
- metadata +241 -47
- data/lib/roku_builder/controller.rb +0 -98
- data/lib/roku_builder/controller_commands.rb +0 -224
- data/lib/roku_builder/error_handler.rb +0 -142
- data/lib/roku_builder/inspector.rb +0 -82
- data/lib/roku_builder/keyer.rb +0 -106
- data/lib/roku_builder/loader.rb +0 -131
- data/lib/roku_builder/manifest_manager.rb +0 -126
- data/lib/roku_builder/packager.rb +0 -43
- data/lib/roku_builder/profiler.rb +0 -96
- data/lib/roku_builder/scripter.rb +0 -39
- data/test/roku_builder/test_controller.rb +0 -70
- data/test/roku_builder/test_controller_commands.rb +0 -465
- data/test/roku_builder/test_error_handler.rb +0 -90
- data/test/roku_builder/test_inspector.rb +0 -298
- data/test/roku_builder/test_keyer.rb +0 -176
- data/test/roku_builder/test_linker.rb +0 -110
- data/test/roku_builder/test_loader.rb +0 -337
- data/test/roku_builder/test_manifest_manager.rb +0 -103
- data/test/roku_builder/test_monitor.rb +0 -137
- data/test/roku_builder/test_navigator.rb +0 -280
- data/test/roku_builder/test_packager.rb +0 -127
- data/test/roku_builder/test_profiler.rb +0 -35
- data/test/roku_builder/test_scripter.rb +0 -102
- data/test/roku_builder/test_tester.rb +0 -130
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 20601e921fb6a11cbb6bdba633e4aa54a3e94343
|
|
4
|
+
data.tar.gz: 66bb11a717dcac6324d27a930fb964edbab0057d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9d0e9288d2038d9c0b9d4b24f3d15bdfd02552f2c5c454edff8d9b6edb99855a56ffd1a182aaf7e12f7fa46047305e56ad20633ea268bb6f45e6bf829941bca5
|
|
7
|
+
data.tar.gz: 25d90e11fbfa33b52eeeb2300137c0f1b4d93afe421e228afbc32189035ab4184bb682c02726380198e19e3f0f86b05fd740171265a50f437c79297649f382d2
|
data/.travis.yml
CHANGED
data/CHANGELOG
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
= 4.0.0 =
|
|
2
|
+
|
|
3
|
+
- Code base refactor for maintianability
|
|
4
|
+
- Add plugin architecture
|
|
5
|
+
- Add more profiler commands
|
|
6
|
+
- Replaced --deeplink-options command with just --deeplink
|
|
7
|
+
- Added Webmock to simplify tests
|
|
8
|
+
- Add basic intergration tests
|
|
9
|
+
- Move majority of documentation to Wiki
|
|
10
|
+
- Update to run on ruby-2.4.1
|
|
11
|
+
- Update dependancies
|
|
12
|
+
|
|
1
13
|
= 3.13.0 =
|
|
2
14
|
|
|
3
15
|
- Windows combatability
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
roku_builder (
|
|
4
|
+
roku_builder (4.0.0)
|
|
5
5
|
faraday (~> 0.12)
|
|
6
6
|
faraday-digestauth (~> 0.2)
|
|
7
7
|
git (~> 1.3)
|
|
@@ -14,6 +14,8 @@ PATH
|
|
|
14
14
|
GEM
|
|
15
15
|
remote: https://rubygems.org/
|
|
16
16
|
specs:
|
|
17
|
+
addressable (2.5.1)
|
|
18
|
+
public_suffix (~> 2.0, >= 2.0.2)
|
|
17
19
|
byebug (9.0.6)
|
|
18
20
|
coderay (1.1.1)
|
|
19
21
|
coveralls (0.8.21)
|
|
@@ -22,6 +24,8 @@ GEM
|
|
|
22
24
|
term-ansicolor (~> 1.3)
|
|
23
25
|
thor (~> 0.19.4)
|
|
24
26
|
tins (~> 1.6)
|
|
27
|
+
crack (0.4.3)
|
|
28
|
+
safe_yaml (~> 1.0.0)
|
|
25
29
|
docile (1.1.5)
|
|
26
30
|
faraday (0.12.1)
|
|
27
31
|
multipart-post (>= 1.2, < 3)
|
|
@@ -46,29 +50,32 @@ GEM
|
|
|
46
50
|
guard-minitest (2.4.6)
|
|
47
51
|
guard-compat (~> 1.2)
|
|
48
52
|
minitest (>= 3.0)
|
|
53
|
+
hashdiff (0.3.4)
|
|
49
54
|
json (2.1.0)
|
|
50
55
|
listen (3.1.5)
|
|
51
56
|
rb-fsevent (~> 0.9, >= 0.9.4)
|
|
52
57
|
rb-inotify (~> 0.9, >= 0.9.7)
|
|
53
58
|
ruby_dep (~> 1.2)
|
|
54
59
|
lumberjack (1.0.12)
|
|
55
|
-
m (1.5.
|
|
60
|
+
m (1.5.1)
|
|
56
61
|
method_source (>= 0.6.7)
|
|
57
62
|
rake (>= 0.9.2.2)
|
|
58
63
|
method_source (0.8.2)
|
|
59
|
-
mini_portile2 (2.
|
|
64
|
+
mini_portile2 (2.2.0)
|
|
60
65
|
minitest (5.10.2)
|
|
61
66
|
minitest-autotest (1.0.3)
|
|
62
67
|
minitest-server (~> 1.0)
|
|
63
68
|
minitest-server (1.0.4)
|
|
64
69
|
minitest (~> 5.0)
|
|
70
|
+
minitest-utils (0.3.1)
|
|
71
|
+
minitest
|
|
65
72
|
multipart-post (2.0.0)
|
|
66
73
|
nenv (0.3.0)
|
|
67
74
|
net-http-digest_auth (1.4.1)
|
|
68
75
|
net-ping (2.0.1)
|
|
69
76
|
net-telnet (0.1.1)
|
|
70
|
-
nokogiri (1.
|
|
71
|
-
mini_portile2 (~> 2.
|
|
77
|
+
nokogiri (1.8.0)
|
|
78
|
+
mini_portile2 (~> 2.2.0)
|
|
72
79
|
notiffany (0.1.1)
|
|
73
80
|
nenv (~> 0.1)
|
|
74
81
|
shellany (~> 0.0)
|
|
@@ -76,23 +83,29 @@ GEM
|
|
|
76
83
|
coderay (~> 1.1.0)
|
|
77
84
|
method_source (~> 0.8.1)
|
|
78
85
|
slop (~> 3.4)
|
|
86
|
+
public_suffix (2.0.5)
|
|
79
87
|
rake (12.0.0)
|
|
80
88
|
rb-fsevent (0.9.8)
|
|
81
89
|
rb-inotify (0.9.8)
|
|
82
90
|
ffi (>= 0.5.0)
|
|
83
91
|
ruby_dep (1.5.0)
|
|
84
92
|
rubyzip (1.2.1)
|
|
93
|
+
safe_yaml (1.0.4)
|
|
85
94
|
shellany (0.0.1)
|
|
86
95
|
simplecov (0.14.1)
|
|
87
96
|
docile (~> 1.1.0)
|
|
88
97
|
json (>= 1.8, < 3)
|
|
89
98
|
simplecov-html (~> 0.10.0)
|
|
90
|
-
simplecov-html (0.10.
|
|
99
|
+
simplecov-html (0.10.1)
|
|
91
100
|
slop (3.6.0)
|
|
92
101
|
term-ansicolor (1.6.0)
|
|
93
102
|
tins (~> 1.0)
|
|
94
103
|
thor (0.19.4)
|
|
95
104
|
tins (1.14.0)
|
|
105
|
+
webmock (3.0.1)
|
|
106
|
+
addressable (>= 2.3.6)
|
|
107
|
+
crack (>= 0.3.2)
|
|
108
|
+
hashdiff
|
|
96
109
|
win32-security (0.5.0)
|
|
97
110
|
ffi
|
|
98
111
|
ffi-win32-extensions
|
|
@@ -111,10 +124,12 @@ DEPENDENCIES
|
|
|
111
124
|
minitest (~> 5.10)
|
|
112
125
|
minitest-autotest (~> 1.0)
|
|
113
126
|
minitest-server (~> 1.0)
|
|
127
|
+
minitest-utils (~> 0.3)
|
|
114
128
|
rake (~> 12.0)
|
|
115
129
|
roku_builder!
|
|
116
130
|
simplecov (~> 0.12)
|
|
131
|
+
webmock (~> 3.0)
|
|
117
132
|
yard (~> 0.9)
|
|
118
133
|
|
|
119
134
|
BUNDLED WITH
|
|
120
|
-
1.
|
|
135
|
+
1.15.1
|
data/Guardfile
CHANGED
|
@@ -17,10 +17,10 @@
|
|
|
17
17
|
#
|
|
18
18
|
# and, you'll have to watch "config/Guardfile" instead of "Guardfile"
|
|
19
19
|
|
|
20
|
-
|
|
21
20
|
guard :minitest do
|
|
22
21
|
# with Minitest::Unit
|
|
23
22
|
watch(%r{^test/roku_builder/(.*)\/?test_(.*)\.rb$})
|
|
24
|
-
watch(%r{^lib/roku_builder
|
|
25
|
-
watch(%r{^
|
|
23
|
+
watch(%r{^lib/roku_builder.rb$}) { "test/roku_builder/test_roku_builder.rb" }
|
|
24
|
+
watch(%r{^lib/roku_builder/(.*/)?([^/]+)\.rb$}) { |m| "test/roku_builder/#{m[1]}test_#{m[2]}.rb" }
|
|
25
|
+
watch(%r{^test/roku_builder/test_helper\.rb$}) { 'test/roku_builder' }
|
|
26
26
|
end
|
data/README.md
CHANGED
|
@@ -6,35 +6,8 @@
|
|
|
6
6
|
[](https://coveralls.io/github/ViacomInc/roku_builder?branch=master)
|
|
7
7
|
[](https://codeclimate.com/github/ViacomInc/roku_builder)
|
|
8
8
|
|
|
9
|
-
A tool to help with Roku Development. Assists with
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
* Sideloading
|
|
13
|
-
* Packaging
|
|
14
|
-
* Building
|
|
15
|
-
* Testing
|
|
16
|
-
* Deeplink testing
|
|
17
|
-
* Intergration test scripting
|
|
18
|
-
* Manifest Updating
|
|
19
|
-
* App Deleteing
|
|
20
|
-
* Package Inspection
|
|
21
|
-
* Monitoring logs
|
|
22
|
-
* Profile Scene Graph applications
|
|
23
|
-
|
|
24
|
-
The tool allows scripting of the following:
|
|
25
|
-
|
|
26
|
-
* Conroller inputs
|
|
27
|
-
* Text Input
|
|
28
|
-
* Screencaptures
|
|
29
|
-
* Printing project information
|
|
30
|
-
|
|
31
|
-
Other tasks the tool can complete:
|
|
32
|
-
|
|
33
|
-
* Device navigation
|
|
34
|
-
* Configuration Generation
|
|
35
|
-
* Configuration Validation
|
|
36
|
-
* Configuration Updating
|
|
37
|
-
|
|
9
|
+
A tool to help with Roku Development. Assists with many development/deployment
|
|
10
|
+
tasks. More information can be found in the [wiki](https://github.com/ViacomInc/roku_builder/wiki).
|
|
38
11
|
|
|
39
12
|
## Installation
|
|
40
13
|
|
|
@@ -42,390 +15,40 @@ Install it yourself with:
|
|
|
42
15
|
|
|
43
16
|
$ gem install roku_builder
|
|
44
17
|
|
|
45
|
-
##
|
|
46
|
-
|
|
47
|
-
#### Configuration
|
|
48
|
-
|
|
49
|
-
The gem must have a configuration file. To generate this file you can run the
|
|
50
|
-
following command:
|
|
51
|
-
|
|
52
|
-
$ roku --configure
|
|
53
|
-
|
|
54
|
-
This will create the file '~/.roku_config.json' with a default configuration.
|
|
55
|
-
Edit this file to add appropriate values. A configuration example with the
|
|
56
|
-
minimum require fields can be found in this project called 'config.json.min'.
|
|
57
|
-
The following are default configuration options:
|
|
58
|
-
|
|
59
|
-
##### Top Level Configuration
|
|
60
|
-
|
|
61
|
-
* devices: information for accessing devices
|
|
62
|
-
* projects: this is a hash of project objects
|
|
63
|
-
* keys: contains keys that will be used for signing packages
|
|
64
|
-
* input_mapping: allows you to change key mappings for the intractive navigator
|
|
65
|
-
|
|
66
|
-
##### Device Configuration
|
|
67
|
-
|
|
68
|
-
* devices.default: id of the default device
|
|
69
|
-
* devices.<device_id>.ip: ip address of the device
|
|
70
|
-
* devices.<device_id>.user: dev username for the roku device
|
|
71
|
-
* devices.<device_id>.password: dev password for the roku device
|
|
72
|
-
|
|
73
|
-
##### Project Configuration
|
|
74
|
-
|
|
75
|
-
* projects.default: the key for the default project
|
|
76
|
-
* projects.parent_dir: optional directory path that all projects are relative
|
|
77
|
-
to
|
|
78
|
-
* projects.<project_id>.parent: optional id of parent project to copy configs
|
|
79
|
-
from
|
|
80
|
-
* projects.<project_id>.directory: full path of the git repository the houses
|
|
81
|
-
the roku app
|
|
82
|
-
* projects.<project_id>.app_name: Name used when packaging the app
|
|
83
|
-
* projects.<project_id>.stage_method: Which method to use for switching app
|
|
84
|
-
stages (git or script)
|
|
85
|
-
* projects.<project_id>.stages: a hash of stage objects
|
|
86
|
-
* projects.<project_id>.stages.<stage_id>.branch: name of the branch for the
|
|
87
|
-
given stage (if stage_method = git). If using stage_method = stage then
|
|
88
|
-
this can be removed.
|
|
89
|
-
* projects.<project_id>.stages.<stage_id>.script: scripts to use to stage the
|
|
90
|
-
app (if stage_method = script). If using stage_method = git this can be
|
|
91
|
-
removed.
|
|
92
|
-
* projects.<project_id>.stages.<stage_id>.script.stage: script run form the
|
|
93
|
-
app root directory to stage app
|
|
94
|
-
* projects.<project_id>.stages.<stage_id>.script -> unstage: script run form
|
|
95
|
-
the app root directory to unstage app
|
|
96
|
-
* projects.<project_id>.stages.<stage_id>.key: this can be a string referencing
|
|
97
|
-
a key in the keys section or a hash of options
|
|
98
|
-
* projects.<project_id>.stages.<stage_id>.key.keyed_pkg: path to a pkg file
|
|
99
|
-
that has been signed
|
|
100
|
-
* projects.<project_id>.stages.<stage_id>.key.password: password for the signed pkg
|
|
101
|
-
|
|
102
|
-
##### Key Configuration
|
|
103
|
-
|
|
104
|
-
* keys.key_dir: optional directory that all keys are relative to
|
|
105
|
-
* keys.<key_id>.keyed_pkg: path to a pkg file that has been signed
|
|
106
|
-
* keys.<key_id>.password: password for the signed pkg
|
|
107
|
-
|
|
108
|
-
The "input_mappings" section is optional but will allow you to override
|
|
109
|
-
the default input mappings. In the section each key is a key press code. The
|
|
110
|
-
value is a array with the desired command to run and a human readable key name.
|
|
111
|
-
To see the key press code for a specific key the --navigate command can be run
|
|
112
|
-
with the --debug option on to see a print out of all the keys pressed.
|
|
113
|
-
|
|
114
|
-
#### Basic steps for creating a Roku channel/application package
|
|
115
|
-
|
|
116
|
-
Official docs for packaging an application can be found [in the sdk](https://sdkdocs.roku.com/display/sdkdoc/Packaging+Your+Application), however the basic steps are:
|
|
117
|
-
|
|
118
|
-
1. Run the genkey utility to generate a key. This key will sign packages. This step only needs to be done once.
|
|
119
|
-
1. Add the key to your configuration file. This will also only need to be done once.
|
|
120
|
-
1. Run the package utility to generate package. This will create a .pkg file in /tmp.
|
|
121
|
-
|
|
122
|
-
RokuBuilder makes running each of these steps easy, without needing to use the Roku device web interface or telnet.
|
|
123
|
-
|
|
124
|
-
#### Projects and Stages
|
|
125
|
-
|
|
126
|
-
The configuration for this gem allows you to define any number of projects and
|
|
127
|
-
any number of stages for each project. It is intended that each app be defined
|
|
128
|
-
as a project and then the stages for that project would allow you to define
|
|
129
|
-
production/staging/etc. stages.
|
|
130
|
-
|
|
131
|
-
There are two different ways that stages can be defined. You can use a script
|
|
132
|
-
to define your stage. This gives you the greatest amount of freedom allowing
|
|
133
|
-
you to setup your stage anyway you want. The other option is to use git
|
|
134
|
-
staging. To do this you must have one branch for eash stage.
|
|
135
|
-
|
|
136
|
-
The project used in the examples below is a smart default. If you are in a
|
|
137
|
-
project directory then it will use that project. If you are not then it will
|
|
138
|
-
use the defualt that you have defined in your config. You can define what
|
|
139
|
-
project you want the command to be run on using the --project option:
|
|
140
|
-
|
|
141
|
-
$ roku -lw --project project1
|
|
142
|
-
|
|
143
|
-
or:
|
|
144
|
-
|
|
145
|
-
$ roku -lw -P project1
|
|
146
|
-
|
|
147
|
-
#### Commands and Sources
|
|
148
|
-
|
|
149
|
-
There are several commands that require a source option to run properly. These
|
|
150
|
-
include:
|
|
151
|
-
|
|
152
|
-
* Sideload
|
|
153
|
-
* Build
|
|
154
|
-
* Package
|
|
155
|
-
* Test
|
|
156
|
-
* Key
|
|
157
|
-
|
|
158
|
-
There are several source options that can be supplied to these commands. Which
|
|
159
|
-
options you use will depend on the type of staging you are using and the app
|
|
160
|
-
you are trying to run the command. The options are as follows:
|
|
161
|
-
|
|
162
|
-
* --ref or -r
|
|
163
|
-
* This option only works with git type staging. It will allow you to run a
|
|
164
|
-
command on a specific git branch, tag, or referance.
|
|
165
|
-
* --stage or -s
|
|
166
|
-
* This option will work with either git or script staging. It allows you to
|
|
167
|
-
sideload a specific stage. See below for more information. This is the
|
|
168
|
-
only source option that you can use when packaging.
|
|
169
|
-
* --working or -w
|
|
170
|
-
* This option will work with git or script staging. It will use the project
|
|
171
|
-
configs to determine the directory to use but will not run any staging
|
|
172
|
-
method.
|
|
173
|
-
* --current or -c
|
|
174
|
-
* This option will ignore any project configurattion and just us the entire
|
|
175
|
-
current directory.
|
|
176
|
-
* --in or -I
|
|
177
|
-
* This option allows you to pass in a zip file of an already built app.
|
|
178
|
-
|
|
179
|
-
#### Staging
|
|
180
|
-
|
|
181
|
-
It is usually a good idea to have multiple versions of your roku app. For
|
|
182
|
-
example you could have a production and staging version of your app. RokuBuilder
|
|
183
|
-
allows for this by using stages. There are two methods of staging, git, or
|
|
184
|
-
script.
|
|
185
|
-
|
|
186
|
-
If you choose to stage via git then for each stage you will define a git branch
|
|
187
|
-
or ref. While staging (like durning packaging) RokuBuilder will stash all
|
|
188
|
-
changes, checkout the defined branch, complete the requested action, checkout
|
|
189
|
-
the orginal branch, and pop stashed changes.
|
|
190
|
-
|
|
191
|
-
If you choose to use script staging then for each stage you will define a
|
|
192
|
-
script to run that will change the app directory approiatly for that stage.
|
|
193
|
-
You may also optionally define an unstage script that will return the directory
|
|
194
|
-
to a clean working state. The script can be anything that will run in the
|
|
195
|
-
project directory.
|
|
196
|
-
|
|
197
|
-
A script staging example would be if you have a shell script (stage.sh) that
|
|
198
|
-
append a config url in your manifest. You would have a different url for each
|
|
199
|
-
stage:
|
|
200
|
-
|
|
201
|
-
#! /bin/bash
|
|
202
|
-
if [ "production" = $1 ]; then
|
|
203
|
-
echo "url=https://prod.url.com" >> manifest
|
|
204
|
-
else
|
|
205
|
-
echo "url=https://staging.url.com" >> manifest
|
|
206
|
-
fi
|
|
207
|
-
|
|
208
|
-
You could also have a script (unstage.sh) that removed that last line:
|
|
209
|
-
|
|
210
|
-
#! /bin/bash
|
|
211
|
-
mv manifest manifest.tmp
|
|
212
|
-
head -n -1 manifest.tmp > manifest
|
|
213
|
-
rm manifest.tmp
|
|
214
|
-
|
|
215
|
-
In your config you could have the following two stages assuming that these
|
|
216
|
-
scripts were in the project root directory:
|
|
217
|
-
|
|
218
|
-
"stages": {
|
|
219
|
-
"prod": {
|
|
220
|
-
"script": {"stage": "./stage.sh production", "unstage": "./unstage"}
|
|
221
|
-
}
|
|
222
|
-
"staging": {
|
|
223
|
-
"script": {"stage": "./stage.sh staging", "unstage": "./unstage"}
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
This would allow you to use the following two commands:
|
|
228
|
-
|
|
229
|
-
$ roku -ls prod
|
|
230
|
-
$ roku -ls staging
|
|
231
|
-
|
|
232
|
-
This would sideload the app with the approiate url in the manifest.
|
|
233
|
-
|
|
234
|
-
#### Sideloading
|
|
235
|
-
|
|
236
|
-
You can sideload an app directly to the device using this gem. The gem will
|
|
237
|
-
zip all of the configured files and upload it to the device and the remove the
|
|
238
|
-
zip. You can do so with the following commands:
|
|
239
|
-
|
|
240
|
-
$ roku --sideload --stage production
|
|
241
|
-
|
|
242
|
-
or:
|
|
243
|
-
|
|
244
|
-
$ roku -ls production
|
|
245
|
-
|
|
246
|
-
When sideoading you can use any of the source options approiate to your staging
|
|
247
|
-
method.
|
|
248
|
-
|
|
249
|
-
#### Building
|
|
250
|
-
|
|
251
|
-
You can build an app to be sideloaded later or by someone else by using the
|
|
252
|
-
following command:
|
|
253
|
-
|
|
254
|
-
$ roku --build --working
|
|
255
|
-
|
|
256
|
-
or:
|
|
257
|
-
|
|
258
|
-
$ roku -bw
|
|
259
|
-
|
|
260
|
-
When bulding you can use any of the source options approiate to your staging
|
|
261
|
-
method except the --in option.
|
|
262
|
-
|
|
263
|
-
#### Generating a key
|
|
264
|
-
|
|
265
|
-
Before you can package a channel, you must [generate a key](https://sdkdocs.roku.com/display/sdkdoc/Packaging+Your+Application#PackagingYourApplication-RunthegenkeyUtility)
|
|
266
|
-
that is used to sign the package. This key is used to sign a new package and is
|
|
267
|
-
also needed to sign a package when updating a channel.
|
|
268
|
-
|
|
269
|
-
You can create a key by running the genkey command:
|
|
270
|
-
|
|
271
|
-
$ roku --genkey
|
|
18
|
+
## Quick Start Guide
|
|
272
19
|
|
|
273
|
-
|
|
20
|
+
### Sideloading
|
|
274
21
|
|
|
275
|
-
|
|
276
|
-
* `Password`: Key's password
|
|
22
|
+
To sideload example or tutoral, switch to correct directory and run:
|
|
277
23
|
|
|
278
|
-
|
|
24
|
+
$ roku -lc
|
|
279
25
|
|
|
280
|
-
To
|
|
281
|
-
configuration file that has a key. Once you have that setup then you can run
|
|
282
|
-
the following:
|
|
26
|
+
To sideload project, ensure [config](https://github.com/ViacomInc/roku_builder/wiki/Configuration#project-configuration) is setup and run:
|
|
283
27
|
|
|
284
|
-
$ roku
|
|
285
|
-
|
|
286
|
-
or:
|
|
287
|
-
|
|
288
|
-
$ roku -ps production
|
|
289
|
-
|
|
290
|
-
The package command will automatically [Rekey](https://github.com/rokudev/docs/blob/master/develop/guides/packaging.md#rekeying)
|
|
291
|
-
your roku device before packaging the channel
|
|
292
|
-
|
|
293
|
-
#### Monitoring Logs
|
|
294
|
-
|
|
295
|
-
The tool has the ability to monitor the different development logs. You use
|
|
296
|
-
the feature using the command --monitor and passing in the type of log you want
|
|
297
|
-
to monitor. For example the following command will monitor the main
|
|
298
|
-
brightscript log:
|
|
299
|
-
|
|
300
|
-
$ roku --monitor main
|
|
301
|
-
|
|
302
|
-
or:
|
|
303
|
-
$ roku -m main
|
|
304
|
-
|
|
305
|
-
or
|
|
306
|
-
|
|
307
|
-
$ roku --monitor
|
|
308
|
-
|
|
309
|
-
The following are the options to be passed in as type:
|
|
310
|
-
|
|
311
|
-
* main
|
|
312
|
-
* sg (depricated)
|
|
313
|
-
* task1 (depricated)
|
|
314
|
-
* task2 (depricated)
|
|
315
|
-
* task3 (depricated)
|
|
316
|
-
* taskX (depricated)
|
|
317
|
-
* profile
|
|
318
|
-
|
|
319
|
-
If no option is passed in then main log is monitored.
|
|
320
|
-
|
|
321
|
-
The tool connects to the roku via telnet and prints everything that it
|
|
322
|
-
recieves. It will continue indefinatly unless it is stopped via Ctrl-c or
|
|
323
|
-
entering "q".
|
|
324
|
-
|
|
325
|
-
The monitor tool also includes command history and some tab completeion.
|
|
326
|
-
|
|
327
|
-
#### Interactive Navigation
|
|
328
|
-
|
|
329
|
-
The gem has the ability to capture keyboard input and send it to the roku as
|
|
330
|
-
remote inputs. This can be done by running the following command:
|
|
331
|
-
|
|
332
|
-
$ roku --navigate
|
|
333
|
-
|
|
334
|
-
Running in verbose mode will print out all of the key mappings avaiable. If you
|
|
335
|
-
want to change these mappings you can do so via the input_mapping config values
|
|
336
|
-
. To determine the codes needed to enter in the input_mapping config you can
|
|
337
|
-
run the navigator in debug mode.
|
|
338
|
-
|
|
339
|
-
#### Profiling Scene Graph
|
|
340
|
-
|
|
341
|
-
The tool will help a little with profiling scenegraph applications. Running the
|
|
342
|
-
following command will print a list of all of the currently created nodes
|
|
343
|
-
types and how many of each are being created.
|
|
344
|
-
|
|
345
|
-
$ roku --profile stats
|
|
346
|
-
|
|
347
|
-
If you want to see more information about each node you can monitor the
|
|
348
|
-
profile log (See Monitoring Logs above) and enter the following command:
|
|
349
|
-
|
|
350
|
-
$ sgnodes all
|
|
351
|
-
|
|
352
|
-
#### Testing
|
|
353
|
-
|
|
354
|
-
There are a few tools that can be used for testing. The testing command will
|
|
355
|
-
sideload the branch defined in the testing stage. It will then connect to the
|
|
356
|
-
device via telnet and look for the following strings and prints everything
|
|
357
|
-
inbetween them:
|
|
358
|
-
|
|
359
|
-
Start delimiter: \*\*\*\*\* STARTING TESTS \*\*\*\*\*
|
|
360
|
-
|
|
361
|
-
End delimiter: \*\*\*\*\* ENDING TESTS \*\*\*\*\*
|
|
362
|
-
|
|
363
|
-
This is designed to be used with the brstest library. Ensure that if you use
|
|
364
|
-
this that the app the prints out a sufficent number of lines after the tests
|
|
365
|
-
are run otherwise it will just grab the test run from last time.
|
|
366
|
-
|
|
367
|
-
Another tool for testing is the navigate command. You can use this to script
|
|
368
|
-
navigation on the roku console. The command is used as follows:
|
|
369
|
-
|
|
370
|
-
$ roku --nav <command>
|
|
371
|
-
|
|
372
|
-
The possible commands are as follows:
|
|
373
|
-
|
|
374
|
-
* up
|
|
375
|
-
* down
|
|
376
|
-
* right
|
|
377
|
-
* left
|
|
378
|
-
* select
|
|
379
|
-
* back
|
|
380
|
-
* home
|
|
381
|
-
* rew
|
|
382
|
-
* ff
|
|
383
|
-
* play
|
|
384
|
-
* replay
|
|
385
|
-
|
|
386
|
-
There is also a command that will allow you to send text to the roku. It is
|
|
387
|
-
used as follows:
|
|
388
|
-
|
|
389
|
-
$ roku --type <text>
|
|
390
|
-
|
|
391
|
-
#### Other Tools
|
|
392
|
-
|
|
393
|
-
You can deeplink into your app using the following command:
|
|
394
|
-
|
|
395
|
-
$ roku --deeplink-options "a:b c:d"
|
|
28
|
+
$ roku -lw
|
|
396
29
|
|
|
397
30
|
or
|
|
398
31
|
|
|
399
|
-
$ roku -
|
|
400
|
-
|
|
401
|
-
This will deeplink into the app sending the keypair values as defined in the
|
|
402
|
-
string. You can also have the app sideloaded first by adding one of the
|
|
403
|
-
source options (--working/-w, --current/-c, --ref/-r, or --stage/-s).
|
|
404
|
-
|
|
405
|
-
You can delete the currently sideloaded app using the following command:
|
|
32
|
+
$ roku -ls <stage>
|
|
406
33
|
|
|
407
|
-
|
|
34
|
+
### Debugging
|
|
408
35
|
|
|
409
|
-
|
|
36
|
+
To monitor debug log and interact with debugger run:
|
|
410
37
|
|
|
411
|
-
$ roku
|
|
38
|
+
$ roku -m
|
|
412
39
|
|
|
413
|
-
|
|
40
|
+
### Packaging
|
|
414
41
|
|
|
415
|
-
|
|
42
|
+
To package and app:
|
|
416
43
|
|
|
417
|
-
|
|
418
|
-
default device defined in the configuration file. If that device is not online
|
|
419
|
-
it will look start at the top and try each device until it findes an avaiable
|
|
420
|
-
device. If you have multiple devices defined in your config then you can select
|
|
421
|
-
a different one using the following option:
|
|
44
|
+
1. Generate a key (Once):
|
|
422
45
|
|
|
423
|
-
$ roku
|
|
424
|
-
|
|
425
|
-
or:
|
|
46
|
+
$ roku --genkey
|
|
426
47
|
|
|
427
|
-
|
|
48
|
+
1. Add key to (config)[https://github.com/ViacomInc/roku_builder/wiki/Configuration#key-configuration] (Once).
|
|
49
|
+
1. Package channel:
|
|
428
50
|
|
|
51
|
+
$ roku -ps <stage>
|
|
429
52
|
|
|
430
53
|
## Documentation
|
|
431
54
|
|
|
@@ -437,9 +60,10 @@ directory:
|
|
|
437
60
|
|
|
438
61
|
## Improvements
|
|
439
62
|
|
|
440
|
-
* Allow start and end delimiter for tests to be configured
|
|
441
63
|
* Fix file naming when building from a referance
|
|
442
|
-
*
|
|
64
|
+
* Add configuration option for build_version format
|
|
65
|
+
* Check if keying with bad password
|
|
66
|
+
* Check if missing key config when required
|
|
443
67
|
|
|
444
68
|
## Contributing
|
|
445
69
|
|