@24i/smartapps-bigscreen-rnv-build-engine 0.0.2-alpha.1364 → 0.0.2-alpha.1367
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.
- package/README.md +148 -2
- package/dist/templates/platforms/_shared/webpack.base.js +0 -5
- package/dist/templates/platforms/entone/webpack.config.dev.js +0 -1
- package/dist/templates/platforms/entone/webpack.config.prod.js +0 -1
- package/dist/templates/platforms/hbbtv/webpack.config.dev.js +0 -1
- package/dist/templates/platforms/hbbtv/webpack.config.prod.js +0 -1
- package/dist/templates/platforms/saphi/webpack.config.dev.js +0 -1
- package/dist/templates/platforms/saphi/webpack.config.prod.js +0 -1
- package/dist/templates/platforms/tizen/webpack.config.dev.js +0 -1
- package/dist/templates/platforms/tizen/webpack.config.prod.js +0 -1
- package/dist/templates/platforms/webos/webpack.config.dev.js +0 -1
- package/dist/templates/platforms/webos/webpack.config.prod.js +0 -1
- package/dist/templates/platforms/webtv/webpack.config.dev.js +0 -1
- package/dist/templates/platforms/webtv/webpack.config.prod.js +0 -1
- package/package.json +3 -8
package/README.md
CHANGED
|
@@ -5,5 +5,151 @@ hide_title: true
|
|
|
5
5
|
sidebar_label: Rnv Build Engine
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
# rnv-build-engine
|
|
9
|
+
|
|
10
|
+
> To **start a new project** with usage of our build process,
|
|
11
|
+
> please use [SmartApps BIGscreen Template repository](https://github.com/24i/smartapps-bigscreen-template),
|
|
12
|
+
> it uses this package and has prepared other required configuration files as well.
|
|
13
|
+
|
|
14
|
+
## Content
|
|
15
|
+
1. [About the package](#1-about-the-package)
|
|
16
|
+
2. [Supported platforms](#2-supported-platforms)
|
|
17
|
+
3. [Supported build schemes](#3-supported-build-schemes)
|
|
18
|
+
4. [Package content](#4-package-content)
|
|
19
|
+
5. [How to set up new project with SmartApps BIGscreen build engine](#5-how-to-set-up-new-project-with-smartapps-bigscreen-build-engine)
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 1. About the package
|
|
24
|
+
> Package for `SmartApps BIGscreen` projects, which needs **automated build and deploy process**.
|
|
25
|
+
|
|
26
|
+
Uses [ReNative](https://github.com/pavjacko/renative) -
|
|
27
|
+
this package contains (not only) custom build engine for `ReNative` which is used instead of core ReNative engine
|
|
28
|
+
to fulfill the needs of SmartApps BIGscreen projects.
|
|
29
|
+
|
|
30
|
+
it
|
|
31
|
+
- **builds** applications for requested platforms
|
|
32
|
+
- **deploys** the built applications to `AWS S3` (or to server configured to host `HbbTV` applications)
|
|
33
|
+
- **releases** new versions to `AppCenter.me`, `GitHub`
|
|
34
|
+
- sends **Slack notifications** for `release candidate` and `release` builds
|
|
35
|
+
- supports `Sentry.io` runtime **error logging**
|
|
36
|
+
|
|
37
|
+
## 2. Supported platforms
|
|
38
|
+
|
|
39
|
+
| *Platform* | *Vendor* | *id* | *Build file extension* | *Note* |
|
|
40
|
+
| :--------- | :------: | :------: | :--------------------: | :------------------------------: |
|
|
41
|
+
| **Entone** | Amino | `entone` | `.zip` | set-top boxes |
|
|
42
|
+
| **HbbTV** | N/A | `hbbtv` | `.zip` | |
|
|
43
|
+
| **Saphi** | Philips | `saphi` | `.zip` | |
|
|
44
|
+
| **Tizen** | Samsung | `tizen` | `.wgt` | |
|
|
45
|
+
| **WebTV** | N/A | `webtv` | `.zip` | for previewing builds in browser |
|
|
46
|
+
| **webOS** | LG | `webos` | `.ipk` | |
|
|
47
|
+
|
|
48
|
+
## 3. Supported build schemes
|
|
49
|
+
|
|
50
|
+
| *Scheme id* | *Build Environment* | *Usage* |
|
|
51
|
+
| :----------------- | :-----------------: | ------------------------------------------------------------- |
|
|
52
|
+
| **debug** | development | Local builds for debugging purposes |
|
|
53
|
+
| **dev** | production | |
|
|
54
|
+
| **dev:latest** | production | By CI on merge any pull request into `development` branch |
|
|
55
|
+
| **rc** | production | |
|
|
56
|
+
| **rc:latest** | production | By CI on merge any pull request into `rc/v?.?.?` branch |
|
|
57
|
+
| **release** | production | |
|
|
58
|
+
| **release:latest** | production | By CI on merge any pull request into `master` branch |
|
|
59
|
+
| **release:dist** | production | By CI on merge pull request into `master` branch |
|
|
60
|
+
|
|
61
|
+
### 3.1 Schemes with `:latest` postfix
|
|
62
|
+
Scheme names with `:latest` postfix **always deploys into the same location**.
|
|
63
|
+
In other words, app url is the same for each deployed build.
|
|
64
|
+
|
|
65
|
+
### 3.2 `release:dist` scheme
|
|
66
|
+
The difference from [schemes with `:latest` postfix](#) is that new builds are not deployed to the same remote folder all the time.
|
|
67
|
+
Instead, a new folder is created for each new app version - **builds are versioned and archived**.
|
|
68
|
+
|
|
69
|
+
## 4. Package content
|
|
70
|
+
|
|
71
|
+
### 4.1 npm dependenncies
|
|
72
|
+
All npm dependencies are listed in [package.json](../package.json) file.
|
|
73
|
+
|
|
74
|
+
However, not all dependencies are directly bundled into a final npm package,
|
|
75
|
+
but their will be installed alongside with this package into the project's `node_modules` folder.
|
|
76
|
+
|
|
77
|
+
Because of this, those npm dependencies don't have to be listed in custom project's `package.lock` file
|
|
78
|
+
and may be updated only here - from one place.
|
|
79
|
+
With this approach, each individual project will use the same version of those dependencies,
|
|
80
|
+
which simplify the future dependencies update and reduce the amount of time spent with those updates.
|
|
81
|
+
|
|
82
|
+
#### 4.1.1 ReNative npm dependencies
|
|
83
|
+
Firstly, the package contains main ReNative npm packages, namely:
|
|
84
|
+
|
|
85
|
+
- `renative`
|
|
86
|
+
- `renative-template-blank`
|
|
87
|
+
- `rnv`
|
|
88
|
+
|
|
89
|
+
#### 4.1.2 npm dependencies related to custom ReNative build engine
|
|
90
|
+
Following dependencies are used in source code for custom build engine for ReNative:
|
|
91
|
+
|
|
92
|
+
- `@24i/smartapps-bigscreen-icon` *(generating SVG icons)*
|
|
93
|
+
- `@24i/smartapps-bigscreen-sdk-installer` *(installing SDKs for Tizen or webOS)*
|
|
94
|
+
- `glob` *(searching output builds)*
|
|
95
|
+
- `node-ssh` *(connection to HbbTV server)*
|
|
96
|
+
- `svgo` *(generating SVG icons)*
|
|
97
|
+
|
|
98
|
+
#### 4.1.3 npm dependencies related to webpack
|
|
99
|
+
The package has also dependencies which are related to build the applications with webpack bundler, namely:
|
|
100
|
+
|
|
101
|
+
- `css-hot-loader`
|
|
102
|
+
- `css-loader`
|
|
103
|
+
- `file-loader`
|
|
104
|
+
- `filemanager-webpack-plugin`
|
|
105
|
+
- `fork-ts-checker-webpack-plugin`
|
|
106
|
+
- `html-webpack-harddisk-plugin`
|
|
107
|
+
- `html-webpack-plugin`
|
|
108
|
+
- `mini-css-extract-plugin`
|
|
109
|
+
- `sass`
|
|
110
|
+
- `sass-loader`
|
|
111
|
+
- `source-map-loader`
|
|
112
|
+
- `ts-loader`
|
|
113
|
+
- `webpack`
|
|
114
|
+
- `webpack-cli`
|
|
115
|
+
- `webpack-dev-server`
|
|
116
|
+
|
|
117
|
+
#### 4.1.4 other npm dependencies
|
|
118
|
+
There are also dependencies on packages which may be listed in each custom project's dependencies.
|
|
119
|
+
However, as they are listed in this package, those npm dependencies don't need to be listed in custom project's `package.lock` file
|
|
120
|
+
and may be updated only here - from one place.
|
|
121
|
+
|
|
122
|
+
- `core-js` *(polyfills collection)*
|
|
123
|
+
- `coveralls` *(detecting and reporting code coverage)*
|
|
124
|
+
- `raf` *(`requestAnimationFrame` polyfill)*
|
|
125
|
+
- `regenerator-runtime` *(runtime support for compiled/transpiled async functions.)*
|
|
126
|
+
|
|
127
|
+
### 4.2 Custom build engine for ReNative
|
|
128
|
+
The package also contains our custom ReNative engine implementation.
|
|
129
|
+
It allows us to extend the number of platforms we build for
|
|
130
|
+
(core rnv engine supports only `Tizen` and `webOS` platforms for our purposes).
|
|
131
|
+
|
|
132
|
+
Using the custom engine allows us to change the build steps defined in core ReNative engine.
|
|
133
|
+
Also, custom engine is prepared for deploying the built applications to `AWS S3` and to server specially configured for `HbbTV` builds.
|
|
134
|
+
Our custom build engine is also configured to deploy releases to `AppCenter.me`, `GitHub` and `Sentry`.
|
|
135
|
+
|
|
136
|
+
- added support for more platforms (see [supported platforms](#2-supported-platforms))
|
|
137
|
+
- overwritten rnv tasks (such us `build`, `deploy`)
|
|
138
|
+
- added automatic installation of `Tizen` and `webOS` SDKs before building the packages
|
|
139
|
+
- deploy to `AWS S3`, `Appcenter.me`, `GitHub`, `Sentry`
|
|
140
|
+
- added support for `Slack` notifications for `release canndidate` and `release` builds
|
|
141
|
+
|
|
142
|
+
Inside `src/task/` folder, there is a source code for **ReNative tasks** which override core ReNative tasks.
|
|
143
|
+
Basically, it's copy-pasted code from core ReNative engine, with changed in many cases only a few lines and rewritten into Typescript.
|
|
144
|
+
|
|
145
|
+
Inside `templates/platforms/` folder, there are **webpack configs** for each platform.
|
|
146
|
+
If any platform needs some **platform-specific files**, there are located also in that location.
|
|
147
|
+
|
|
148
|
+
## 5. How to set up new project with SmartApps BIGscreen build engine
|
|
149
|
+
There are a few things which are not included in the package and needs to be added manually.
|
|
150
|
+
For example `renative.json` config file and `appConfigs` folder (both related to ReNative)
|
|
151
|
+
and `.travis.yml`config file (related to Travis CI).
|
|
152
|
+
|
|
153
|
+
> To **start a new project** with usage of our build process,
|
|
154
|
+
> please use [SmartApps BIGscreen Template repository](https://github.com/24i/smartapps-bigscreen-template),
|
|
155
|
+
> it uses this package and contains other required configuration files as well.
|
|
@@ -134,11 +134,6 @@ function generateConfig(config) {
|
|
|
134
134
|
enforce: 'pre',
|
|
135
135
|
exclude: [/node_modules/, /build/, /__test__/, /__tests__/],
|
|
136
136
|
},
|
|
137
|
-
mjs: {
|
|
138
|
-
test: /\.mjs$/,
|
|
139
|
-
include: /node_modules/,
|
|
140
|
-
type: 'javascript/auto',
|
|
141
|
-
},
|
|
142
137
|
};
|
|
143
138
|
const aliases = {
|
|
144
139
|
'@24i/smartapps-bigscreen-device': config.environment === 'production'
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@24i/smartapps-bigscreen-rnv-build-engine",
|
|
3
|
-
"version": "0.0.2-alpha.
|
|
3
|
+
"version": "0.0.2-alpha.1367+b19f25ca",
|
|
4
4
|
"description": "Package with build engine for SmartApps BigScreen projects...",
|
|
5
5
|
"main": "dist/src/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -20,7 +20,6 @@
|
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"@24i/smartapps-bigscreen-icon": "0.8.3",
|
|
22
22
|
"@24i/smartapps-bigscreen-sdk-installer": "0.8.3",
|
|
23
|
-
"better-opn": "3.0.0",
|
|
24
23
|
"core-js": "3.15.2",
|
|
25
24
|
"coveralls": "3.1.1",
|
|
26
25
|
"css-hot-loader": "1.4.4",
|
|
@@ -31,7 +30,6 @@
|
|
|
31
30
|
"glob": "7.1.7",
|
|
32
31
|
"html-webpack-harddisk-plugin": "1.0.2",
|
|
33
32
|
"html-webpack-plugin": "4.5.2",
|
|
34
|
-
"inquirer": "8.1.2",
|
|
35
33
|
"mini-css-extract-plugin": "1.6.2",
|
|
36
34
|
"node-ssh": "11.1.1",
|
|
37
35
|
"raf": "3.4.1",
|
|
@@ -41,7 +39,6 @@
|
|
|
41
39
|
"rnv": "0.32.0-alpha.43",
|
|
42
40
|
"sass": "1.35.1",
|
|
43
41
|
"sass-loader": "10.1.1",
|
|
44
|
-
"semver": "7.3.5",
|
|
45
42
|
"source-map-loader": "1.1.3",
|
|
46
43
|
"svgo": "1.3.2",
|
|
47
44
|
"ts-loader": "8.1.0",
|
|
@@ -50,19 +47,17 @@
|
|
|
50
47
|
"webpack-dev-server": "3.11.2"
|
|
51
48
|
},
|
|
52
49
|
"devDependencies": {
|
|
53
|
-
"@types/inquirer": "7.3.3",
|
|
54
50
|
"@types/mini-css-extract-plugin": "1.2.2",
|
|
55
51
|
"@types/node": "16.3.1",
|
|
56
|
-
"@types/semver": "7.3.7",
|
|
57
52
|
"@types/ssh2": "0.5.47",
|
|
58
53
|
"@types/tapable": "1.0.6",
|
|
59
54
|
"@types/webpack": "4.41.26"
|
|
60
55
|
},
|
|
61
56
|
"peerDependencies": {
|
|
62
|
-
"@24i/smartapps-bigscreen-device": ">=0.8.4
|
|
57
|
+
"@24i/smartapps-bigscreen-device": ">=0.8.4"
|
|
63
58
|
},
|
|
64
59
|
"keywords": [],
|
|
65
60
|
"author": "24i",
|
|
66
61
|
"license": "ISC",
|
|
67
|
-
"gitHead": "
|
|
62
|
+
"gitHead": "b19f25ca3f6eeddb3a141d2735abe61f7efa96e2"
|
|
68
63
|
}
|