rnbuilder 0.5.6 → 0.5.9
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 +25 -5
- package/lib/commands/build.d.ts +1 -1
- package/lib/commands/build.js +11 -7
- package/lib/commands/codepush.js +1 -1
- package/lib/commands/match-nuke.d.ts +14 -0
- package/lib/commands/match-nuke.js +57 -0
- package/lib/utils.d.ts +1 -1
- package/lib/utils.js +6 -2
- package/oclif.manifest.json +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -20,7 +20,7 @@ $ npm install -g rnbuilder
|
|
|
20
20
|
$ rnbuilder COMMAND
|
|
21
21
|
running command...
|
|
22
22
|
$ rnbuilder (-v|--version|version)
|
|
23
|
-
rnbuilder/0.5.
|
|
23
|
+
rnbuilder/0.5.9 darwin-arm64 node-v16.13.0
|
|
24
24
|
$ rnbuilder --help [COMMAND]
|
|
25
25
|
USAGE
|
|
26
26
|
$ rnbuilder COMMAND
|
|
@@ -33,6 +33,7 @@ USAGE
|
|
|
33
33
|
* [`rnbuilder codepush [BUILD]`](#rnbuilder-codepush-build)
|
|
34
34
|
* [`rnbuilder help [COMMAND]`](#rnbuilder-help-command)
|
|
35
35
|
* [`rnbuilder initialize`](#rnbuilder-initialize)
|
|
36
|
+
* [`rnbuilder match-nuke [BUILD]`](#rnbuilder-match-nuke-build)
|
|
36
37
|
* [`rnbuilder sync-udids [BUILD]`](#rnbuilder-sync-udids-build)
|
|
37
38
|
|
|
38
39
|
## `rnbuilder build [BUILD]`
|
|
@@ -57,7 +58,7 @@ EXAMPLE
|
|
|
57
58
|
hello world from ./src/build.ts!
|
|
58
59
|
```
|
|
59
60
|
|
|
60
|
-
_See code: [src/commands/build.ts](https://github.com/r0b0t3d/rnbuilder/blob/v0.5.
|
|
61
|
+
_See code: [src/commands/build.ts](https://github.com/r0b0t3d/rnbuilder/blob/v0.5.9/src/commands/build.ts)_
|
|
61
62
|
|
|
62
63
|
## `rnbuilder codepush [BUILD]`
|
|
63
64
|
|
|
@@ -76,7 +77,7 @@ EXAMPLE
|
|
|
76
77
|
Push changes to existing apps ./src/firebase-sync-udids.ts!
|
|
77
78
|
```
|
|
78
79
|
|
|
79
|
-
_See code: [src/commands/codepush.ts](https://github.com/r0b0t3d/rnbuilder/blob/v0.5.
|
|
80
|
+
_See code: [src/commands/codepush.ts](https://github.com/r0b0t3d/rnbuilder/blob/v0.5.9/src/commands/codepush.ts)_
|
|
80
81
|
|
|
81
82
|
## `rnbuilder help [COMMAND]`
|
|
82
83
|
|
|
@@ -108,7 +109,26 @@ EXAMPLE
|
|
|
108
109
|
initialize environment for first run from ./src/initialize.ts!
|
|
109
110
|
```
|
|
110
111
|
|
|
111
|
-
_See code: [src/commands/initialize.ts](https://github.com/r0b0t3d/rnbuilder/blob/v0.5.
|
|
112
|
+
_See code: [src/commands/initialize.ts](https://github.com/r0b0t3d/rnbuilder/blob/v0.5.9/src/commands/initialize.ts)_
|
|
113
|
+
|
|
114
|
+
## `rnbuilder match-nuke [BUILD]`
|
|
115
|
+
|
|
116
|
+
Nuke certificates
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
USAGE
|
|
120
|
+
$ rnbuilder match-nuke [BUILD]
|
|
121
|
+
|
|
122
|
+
OPTIONS
|
|
123
|
+
-c, --client=client Select client that you want to sync udids
|
|
124
|
+
-h, --help show CLI help
|
|
125
|
+
|
|
126
|
+
EXAMPLE
|
|
127
|
+
$ rnbuilder match-nuke
|
|
128
|
+
Nuke certificates ./src/match-nuke.ts!
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
_See code: [src/commands/match-nuke.ts](https://github.com/r0b0t3d/rnbuilder/blob/v0.5.9/src/commands/match-nuke.ts)_
|
|
112
132
|
|
|
113
133
|
## `rnbuilder sync-udids [BUILD]`
|
|
114
134
|
|
|
@@ -127,5 +147,5 @@ EXAMPLE
|
|
|
127
147
|
Sync device UDIDs from firebase from ./src/firebase-sync-udids.ts!
|
|
128
148
|
```
|
|
129
149
|
|
|
130
|
-
_See code: [src/commands/sync-udids.ts](https://github.com/r0b0t3d/rnbuilder/blob/v0.5.
|
|
150
|
+
_See code: [src/commands/sync-udids.ts](https://github.com/r0b0t3d/rnbuilder/blob/v0.5.9/src/commands/sync-udids.ts)_
|
|
131
151
|
<!-- commandsstop -->
|
package/lib/commands/build.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export default class Build extends Command {
|
|
|
15
15
|
name: string;
|
|
16
16
|
}[];
|
|
17
17
|
askForMissingFields: (flags: any) => Promise<any>;
|
|
18
|
-
updateAppVersion(targets: string[], client?: string, versionNumber?: string): void;
|
|
18
|
+
updateAppVersion(targets: string[], env: string, client?: string, versionNumber?: string): void;
|
|
19
19
|
runPlatforms(target: string[], parameters: any, otherParams: any): void;
|
|
20
20
|
run(): Promise<void>;
|
|
21
21
|
}
|
package/lib/commands/build.js
CHANGED
|
@@ -83,7 +83,7 @@ class Build extends command_1.Command {
|
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
85
|
else {
|
|
86
|
-
const appVersion = utils_1.getAppVersion(result.client, result.target);
|
|
86
|
+
const appVersion = utils_1.getAppVersion(result.env, result.client, result.target);
|
|
87
87
|
postQuestions.push({
|
|
88
88
|
type: 'input',
|
|
89
89
|
name: 'version_number',
|
|
@@ -136,10 +136,14 @@ class Build extends command_1.Command {
|
|
|
136
136
|
return result;
|
|
137
137
|
};
|
|
138
138
|
}
|
|
139
|
-
updateAppVersion(targets, client, versionNumber) {
|
|
140
|
-
|
|
139
|
+
updateAppVersion(targets, env, client, versionNumber) {
|
|
140
|
+
let fileName = 'app';
|
|
141
|
+
if (env !== 'prod') {
|
|
142
|
+
fileName = `${fileName}.${env}`;
|
|
143
|
+
}
|
|
144
|
+
const appVersions = require(process.cwd() + `/${fileName}.json`);
|
|
141
145
|
targets.forEach((t) => {
|
|
142
|
-
const appVersion = utils_1.getAppVersion(client, t);
|
|
146
|
+
const appVersion = utils_1.getAppVersion(env, client, t);
|
|
143
147
|
const newVersion = Object.assign(Object.assign({}, appVersion), { build: appVersion.build + 1, buildDate: new Date().toDateString() });
|
|
144
148
|
if (versionNumber) {
|
|
145
149
|
newVersion.version = versionNumber;
|
|
@@ -152,7 +156,7 @@ class Build extends command_1.Command {
|
|
|
152
156
|
}
|
|
153
157
|
});
|
|
154
158
|
const json = JSON.stringify(appVersions, null, 2);
|
|
155
|
-
fs.writeFileSync(process.cwd() +
|
|
159
|
+
fs.writeFileSync(process.cwd() + `/${fileName}.json`, json);
|
|
156
160
|
}
|
|
157
161
|
runPlatforms(target, parameters, otherParams) {
|
|
158
162
|
target.forEach((t) => {
|
|
@@ -166,11 +170,11 @@ class Build extends command_1.Command {
|
|
|
166
170
|
const parameters = utils_1.buildKeyValuePairs(otherParams);
|
|
167
171
|
if (client) {
|
|
168
172
|
client.forEach((c) => {
|
|
169
|
-
this.updateAppVersion(target, c, otherParams.version_number);
|
|
173
|
+
this.updateAppVersion(target, otherParams.env, c, otherParams.version_number);
|
|
170
174
|
});
|
|
171
175
|
}
|
|
172
176
|
else {
|
|
173
|
-
this.updateAppVersion(target, undefined, otherParams.version_number);
|
|
177
|
+
this.updateAppVersion(target, otherParams.env, undefined, otherParams.version_number);
|
|
174
178
|
}
|
|
175
179
|
shell.exec('git add . && git commit -m "bump version" && git push');
|
|
176
180
|
shell.cd('fastlane');
|
package/lib/commands/codepush.js
CHANGED
|
@@ -58,7 +58,7 @@ class CodePush extends command_1.Command {
|
|
|
58
58
|
if (client) {
|
|
59
59
|
envPath += `/clients/${client}/fastlane`;
|
|
60
60
|
}
|
|
61
|
-
const appVersion = utils_1.getAppVersion(client, target);
|
|
61
|
+
const appVersion = utils_1.getAppVersion(env, client, target);
|
|
62
62
|
require('dotenv').config({ path: process.cwd() + '/' + envPath + '/.env' });
|
|
63
63
|
const project = target === 'ios' ? process.env.CODE_PUSH_IOS_PROJECT : process.env.CODE_PUSH_ANDROID_PROJECT;
|
|
64
64
|
shell.exec(`appcenter codepush release-react -a ${project} -d ${env === 'staging' ? 'Staging' : 'Production'} --target-binary-version ${appVersion.version} --token ${process.env.CODE_PUSH_TOKEN}`);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Command, flags } from '@oclif/command';
|
|
2
|
+
export default class MatchNuke extends Command {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
help: import("@oclif/parser/lib/flags").IBooleanFlag<void>;
|
|
7
|
+
client: flags.IOptionFlag<string | undefined>;
|
|
8
|
+
};
|
|
9
|
+
static args: {
|
|
10
|
+
name: string;
|
|
11
|
+
}[];
|
|
12
|
+
askForMissingFields: (flags: any) => Promise<any>;
|
|
13
|
+
run(): Promise<void>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/* eslint-disable no-negated-condition */
|
|
4
|
+
const command_1 = require("@oclif/command");
|
|
5
|
+
const shell = require("shelljs");
|
|
6
|
+
const inquirer = require("inquirer");
|
|
7
|
+
const utils_1 = require("../utils");
|
|
8
|
+
class MatchNuke extends command_1.Command {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(...arguments);
|
|
11
|
+
this.askForMissingFields = async (flags) => {
|
|
12
|
+
const questions = [];
|
|
13
|
+
if (!flags.client) {
|
|
14
|
+
const clients = utils_1.getDirectories('./fastlane/clients');
|
|
15
|
+
if (clients.length > 0) {
|
|
16
|
+
questions.push({
|
|
17
|
+
type: 'list',
|
|
18
|
+
name: 'client',
|
|
19
|
+
message: 'What is the client?',
|
|
20
|
+
choices: clients,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
let result = flags;
|
|
25
|
+
if (questions.length > 0) {
|
|
26
|
+
const answers = await inquirer.prompt(questions);
|
|
27
|
+
result = Object.assign(Object.assign({}, flags), answers);
|
|
28
|
+
}
|
|
29
|
+
return result;
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
async run() {
|
|
33
|
+
const { flags } = this.parse(MatchNuke);
|
|
34
|
+
const params = await this.askForMissingFields(flags);
|
|
35
|
+
const { client } = params;
|
|
36
|
+
let envPath = 'fastlane';
|
|
37
|
+
if (client) {
|
|
38
|
+
envPath += `/clients/${client}/fastlane`;
|
|
39
|
+
}
|
|
40
|
+
require('dotenv').config({ path: process.cwd() + '/' + envPath + '/.env' });
|
|
41
|
+
shell.cd('fastlane');
|
|
42
|
+
const command = `bundle exec fastlane run match_nuke type:adhoc username:${process.env.APPLE_ID} team_id:${process.env.APPLE_TEAM_ID} git_url:${process.env.MATCH_GIT_URL} git_branch:${process.env.CLIENT} app_identifier:${process.env.APP_IDENTIFIER}.staging`;
|
|
43
|
+
console.log({ command });
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
exports.default = MatchNuke;
|
|
47
|
+
MatchNuke.description = 'Nuke certificates';
|
|
48
|
+
MatchNuke.examples = [
|
|
49
|
+
`$ rnbuilder match-nuke
|
|
50
|
+
Nuke certificates ./src/match-nuke.ts!
|
|
51
|
+
`,
|
|
52
|
+
];
|
|
53
|
+
MatchNuke.flags = {
|
|
54
|
+
help: command_1.flags.help({ char: 'h' }),
|
|
55
|
+
client: command_1.flags.string({ char: 'c', description: 'Select client that you want to sync udids' }),
|
|
56
|
+
};
|
|
57
|
+
MatchNuke.args = [{ name: 'build' }];
|
package/lib/utils.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare const buildKeyValuePairs: (params: any) => string[];
|
|
2
2
|
export declare const getDirectories: (path: string) => string[];
|
|
3
|
-
export declare const getAppVersion: (client?: string | undefined, target?: string) => {
|
|
3
|
+
export declare const getAppVersion: (env: string, client?: string | undefined, target?: string) => {
|
|
4
4
|
version: string;
|
|
5
5
|
build: number;
|
|
6
6
|
};
|
package/lib/utils.js
CHANGED
|
@@ -16,8 +16,12 @@ const defaultVersion = {
|
|
|
16
16
|
version: '0.0.1',
|
|
17
17
|
build: 1,
|
|
18
18
|
};
|
|
19
|
-
exports.getAppVersion = (client, target = 'ios') => {
|
|
20
|
-
|
|
19
|
+
exports.getAppVersion = (env, client, target = 'ios') => {
|
|
20
|
+
let fileName = 'app';
|
|
21
|
+
if (env !== 'prod') {
|
|
22
|
+
fileName = `${fileName}.${env}`;
|
|
23
|
+
}
|
|
24
|
+
const appVersions = require(process.cwd() + `/${fileName}.json`);
|
|
21
25
|
let version = defaultVersion;
|
|
22
26
|
if (client) {
|
|
23
27
|
const clientVersion = appVersions[client];
|
package/oclif.manifest.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"0.5.
|
|
1
|
+
{"version":"0.5.9","commands":{"build":{"id":"build","description":"Build react native apps","pluginName":"rnbuilder","pluginType":"core","aliases":[],"examples":["$ rnbuilder build\nhello world from ./src/build.ts!\n"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"show CLI help","allowNo":false},"client":{"name":"client","type":"option","char":"c","description":"Set client that you want to build app"},"target":{"name":"target","type":"option","char":"t","description":"Set the build target: android, ios or both","options":["android","ios"]},"env":{"name":"env","type":"option","char":"e","description":"Set the environment: prod, adhoc, staging","options":["staging","adhoc","prod"]},"branch":{"name":"branch","type":"option","char":"b","description":"Set the source branch used to build the app"},"version":{"name":"version","type":"option","char":"v","description":"Set the version number for this build"},"installr":{"name":"installr","type":"option","char":"i","description":"If enabled, the build will be uploaded to installR"}},"args":[{"name":"build"}]},"codepush":{"id":"codepush","description":"Push changes to existing apps","pluginName":"rnbuilder","pluginType":"core","aliases":[],"examples":["$ rnbuilder codepush\n Push changes to existing apps ./src/firebase-sync-udids.ts!\n"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"show CLI help","allowNo":false},"client":{"name":"client","type":"option","char":"c","description":"Select client that you want to push update"}},"args":[{"name":"build"}]},"initialize":{"id":"initialize","description":"Initialize the environment for first run","pluginName":"rnbuilder","pluginType":"core","aliases":[],"examples":["$ rnbuilder initialize\ninitialize environment for first run from ./src/initialize.ts!\n"],"flags":{},"args":[]},"match-nuke":{"id":"match-nuke","description":"Nuke certificates","pluginName":"rnbuilder","pluginType":"core","aliases":[],"examples":["$ rnbuilder match-nuke\n Nuke certificates ./src/match-nuke.ts!\n"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"show CLI help","allowNo":false},"client":{"name":"client","type":"option","char":"c","description":"Select client that you want to sync udids"}},"args":[{"name":"build"}]},"sync-udids":{"id":"sync-udids","description":"Sync device UDIDs from firebase","pluginName":"rnbuilder","pluginType":"core","aliases":[],"examples":["$ rnbuilder sync-udids\n Sync device UDIDs from firebase from ./src/firebase-sync-udids.ts!\n"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"show CLI help","allowNo":false},"client":{"name":"client","type":"option","char":"c","description":"Select client that you want to sync udids"}},"args":[{"name":"build"}]}}}
|