@wdio/browserstack-service 8.3.11 → 8.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.
- package/README.md +49 -0
- package/build/launcher.d.ts +8 -0
- package/build/launcher.d.ts.map +1 -1
- package/build/launcher.js +151 -2
- package/build/types.d.ts +8 -0
- package/build/types.d.ts.map +1 -1
- package/build/util.d.ts.map +1 -1
- package/build/util.js +1 -0
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -28,6 +28,11 @@ export const config = {
|
|
|
28
28
|
key: process.env.BROWSERSTACK_ACCESS_KEY,
|
|
29
29
|
services: [
|
|
30
30
|
['browserstack', {
|
|
31
|
+
testObservability: true,
|
|
32
|
+
testObservabilityOptions: {
|
|
33
|
+
projectName: "Your project name goes here",
|
|
34
|
+
buildName: "The static build job name goes here e.g. Nightly regression"
|
|
35
|
+
},
|
|
31
36
|
browserstackLocal: true
|
|
32
37
|
}]
|
|
33
38
|
],
|
|
@@ -39,6 +44,35 @@ export const config = {
|
|
|
39
44
|
|
|
40
45
|
In order to authorize to the BrowserStack service your config needs to contain a [`user`](https://webdriver.io/docs/options#user) and [`key`](https://webdriver.io/docs/options#key) option.
|
|
41
46
|
|
|
47
|
+
### testObservability
|
|
48
|
+
|
|
49
|
+
By default, [`testObservability`](https://observability.browserstack.com/) is also enabled when you use the browserstack-service. You can read more about the advanced reporting and analytics functionalities of [`Test Observability`](https://browserstack.com/docs/test-observability) and also read about [`how it works`](https://browserstack.com/docs/test-observability/references/terms-and-conditions). You can visit the Test Observability dashboard after running your tests and also choose to disable it by setting the key to `false`.
|
|
50
|
+
|
|
51
|
+
You can use Test Observability even if you do not want to run your tests on the BrowserStack infrastructure. You could be running your tests on CI or on your laptop or even on other cloud service providers like Sauce Labs, Test Observability could still work and give you all the intelligent test reports and advanced analytics.
|
|
52
|
+
|
|
53
|
+
You can set your config in the following manner if you do not want to run tests on BrowserStack Automate or App Automate (infrastructure) but still want to use Test Observability (note that `user` and `key` are now defined under the scope of the `browserstack` service):
|
|
54
|
+
|
|
55
|
+
```js
|
|
56
|
+
// wdio.conf.js
|
|
57
|
+
export const config = {
|
|
58
|
+
// ...
|
|
59
|
+
services: [
|
|
60
|
+
['browserstack', {
|
|
61
|
+
testObservability: true,
|
|
62
|
+
testObservabilityOptions: {
|
|
63
|
+
user: process.env.BROWSERSTACK_USERNAME,
|
|
64
|
+
key: process.env.BROWSERSTACK_ACCESS_KEY,
|
|
65
|
+
projectName: "Your project name goes here",
|
|
66
|
+
buildName: "The static build job name goes here e.g. Nightly regression"
|
|
67
|
+
}
|
|
68
|
+
}]
|
|
69
|
+
],
|
|
70
|
+
// ...
|
|
71
|
+
};
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
[`Read more`](https://www.browserstack.com/docs/test-observability/quick-start/webdriverio#Tests_running_locally_or_elsewhere) in BrowserStack documentation about how to get started with Test Observability.
|
|
75
|
+
|
|
42
76
|
### browserstackLocal
|
|
43
77
|
Set this to true to enable routing connections from BrowserStack cloud through your computer.
|
|
44
78
|
|
|
@@ -179,6 +213,21 @@ Automatically set the BrowserStack Automate session status (passed/failed).
|
|
|
179
213
|
Type: `Boolean`<br />
|
|
180
214
|
Default: `true`
|
|
181
215
|
|
|
216
|
+
### buildIdentifier
|
|
217
|
+
|
|
218
|
+
**buildIdentifier** is a unique id to differentiate every execution that gets appended to buildName. Choose your buildIdentifier format from the available expressions:
|
|
219
|
+
* ${BUILD_NUMBER}: Generates an incremental counter with every execution
|
|
220
|
+
* ${DATE_TIME}: Generates a Timestamp with every execution. Eg. 05-Nov-19:30
|
|
221
|
+
|
|
222
|
+
```js
|
|
223
|
+
services: [
|
|
224
|
+
['browserstack', {
|
|
225
|
+
buildIdentifier: '#${BUILD_NUMBER}'
|
|
226
|
+
}]
|
|
227
|
+
]
|
|
228
|
+
```
|
|
229
|
+
Build Identifier supports usage of either or both expressions along with any other characters enabling custom formatting options.
|
|
230
|
+
|
|
182
231
|
### opts
|
|
183
232
|
|
|
184
233
|
BrowserStack Local options.
|
package/build/launcher.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ export default class BrowserstackLauncherService implements Services.ServiceInst
|
|
|
12
12
|
private _buildName?;
|
|
13
13
|
private _projectName?;
|
|
14
14
|
private _buildTag?;
|
|
15
|
+
private _buildIdentifier?;
|
|
15
16
|
constructor(_options: BrowserstackConfig & Options.Testrunner, capabilities: Capabilities.RemoteCapability, _config: Options.Testrunner);
|
|
16
17
|
onPrepare(config?: Options.Testrunner, capabilities?: Capabilities.RemoteCapabilities): Promise<unknown>;
|
|
17
18
|
onComplete(): Promise<unknown>;
|
|
@@ -22,6 +23,13 @@ export default class BrowserstackLauncherService implements Services.ServiceInst
|
|
|
22
23
|
*/
|
|
23
24
|
_validateApp(appConfig: AppConfig | string): Promise<App>;
|
|
24
25
|
_updateCaps(capabilities?: Capabilities.RemoteCapabilities, capType?: string, value?: string): void;
|
|
26
|
+
_handleBuildIdentifier(capabilities?: Capabilities.RemoteCapabilities): void;
|
|
27
|
+
/**
|
|
28
|
+
* @return {string} if buildName doesn't exist in json file, it will return 1
|
|
29
|
+
* else returns corresponding value in json file (e.g. { "wdio-build": { "identifier" : 2 } } => 2 in this case)
|
|
30
|
+
*/
|
|
31
|
+
_getLocalBuildNumber(): string | null;
|
|
32
|
+
_updateLocalBuildCache(filePath?: string, buildName?: string, buildIdentifier?: number): void;
|
|
25
33
|
}
|
|
26
34
|
export {};
|
|
27
35
|
//# sourceMappingURL=launcher.d.ts.map
|
package/build/launcher.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../src/launcher.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../src/launcher.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,yBAAyB,MAAM,oBAAoB,CAAA;AAG/D,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAElE,OAAO,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AASvF,KAAK,iBAAiB,GAAG,yBAAyB,CAAC,KAAK,GAAG;IACvD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;CAC7C,CAAA;AAED,MAAM,CAAC,OAAO,OAAO,2BAA4B,YAAW,QAAQ,CAAC,eAAe;IAQ5E,OAAO,CAAC,QAAQ;IAEhB,OAAO,CAAC,OAAO;IATnB,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC,OAAO,CAAC,UAAU,CAAC,CAAQ;IAC3B,OAAO,CAAC,YAAY,CAAC,CAAQ;IAC7B,OAAO,CAAC,SAAS,CAAC,CAAQ;IAC1B,OAAO,CAAC,gBAAgB,CAAC,CAAQ;gBAGrB,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,EACzD,YAAY,EAAE,YAAY,CAAC,gBAAgB,EACnC,OAAO,EAAE,OAAO,CAAC,UAAU;IAwDjC,SAAS,CAAE,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,kBAAkB;IA0GtF,UAAU;IA2CV,UAAU,CAAC,GAAG,EAAC,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAsBrD;;;OAGG;IACG,YAAY,CAAE,SAAS,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAyBhE,WAAW,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC,kBAAkB,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAC,MAAM;IAoF3F,sBAAsB,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC,kBAAkB;IAyCrE;;;OAGG;IACH,oBAAoB;IA6BpB,sBAAsB,CAAC,QAAQ,CAAC,EAAC,MAAM,EAAE,SAAS,CAAC,EAAC,MAAM,EAAE,eAAe,CAAC,EAAC,MAAM;CAQtF"}
|
package/build/launcher.js
CHANGED
|
@@ -6,10 +6,11 @@ import { createRequire } from 'node:module';
|
|
|
6
6
|
import { promisify } from 'node:util';
|
|
7
7
|
import { performance, PerformanceObserver } from 'node:perf_hooks';
|
|
8
8
|
import { SevereServiceError } from 'webdriverio';
|
|
9
|
+
import os from 'node:os';
|
|
9
10
|
import * as BrowserstackLocalLauncher from 'browserstack-local';
|
|
10
11
|
import logger from '@wdio/logger';
|
|
11
12
|
import { VALID_APP_EXTENSION } from './constants.js';
|
|
12
|
-
import { launchTestSession, shouldAddServiceVersion, stopBuildUpstream } from './util.js';
|
|
13
|
+
import { launchTestSession, shouldAddServiceVersion, stopBuildUpstream, getCiInfo } from './util.js';
|
|
13
14
|
const require = createRequire(import.meta.url);
|
|
14
15
|
const { version: bstackServiceVersion } = require('../package.json');
|
|
15
16
|
const log = logger('@wdio/browserstack-service');
|
|
@@ -20,6 +21,7 @@ export default class BrowserstackLauncherService {
|
|
|
20
21
|
_buildName;
|
|
21
22
|
_projectName;
|
|
22
23
|
_buildTag;
|
|
24
|
+
_buildIdentifier;
|
|
23
25
|
constructor(_options, capabilities, _config) {
|
|
24
26
|
this._options = _options;
|
|
25
27
|
this._config = _config;
|
|
@@ -35,12 +37,15 @@ export default class BrowserstackLauncherService {
|
|
|
35
37
|
else if (shouldAddServiceVersion(this._config, this._options.testObservability)) {
|
|
36
38
|
capability['browserstack.wdioService'] = bstackServiceVersion;
|
|
37
39
|
}
|
|
40
|
+
this._buildIdentifier = capability['browserstack.buildIdentifier']?.toString();
|
|
41
|
+
this._buildName = capability.build?.toString();
|
|
38
42
|
}
|
|
39
43
|
else {
|
|
40
44
|
capability['bstack:options'].wdioService = bstackServiceVersion;
|
|
41
45
|
this._buildName = capability['bstack:options'].buildName;
|
|
42
46
|
this._projectName = capability['bstack:options'].projectName;
|
|
43
47
|
this._buildTag = capability['bstack:options'].buildTag;
|
|
48
|
+
this._buildIdentifier = capability['bstack:options'].buildIdentifier;
|
|
44
49
|
}
|
|
45
50
|
});
|
|
46
51
|
}
|
|
@@ -54,6 +59,7 @@ export default class BrowserstackLauncherService {
|
|
|
54
59
|
else if (shouldAddServiceVersion(this._config, this._options.testObservability)) {
|
|
55
60
|
caps.capabilities['browserstack.wdioService'] = bstackServiceVersion;
|
|
56
61
|
}
|
|
62
|
+
this._buildIdentifier = caps.capabilities['browserstack.buildIdentifier'];
|
|
57
63
|
}
|
|
58
64
|
else {
|
|
59
65
|
const bstackOptions = caps.capabilities['bstack:options'];
|
|
@@ -61,6 +67,7 @@ export default class BrowserstackLauncherService {
|
|
|
61
67
|
this._buildName = bstackOptions.buildName;
|
|
62
68
|
this._projectName = bstackOptions.projectName;
|
|
63
69
|
this._buildTag = bstackOptions.buildTag;
|
|
70
|
+
this._buildIdentifier = bstackOptions.buildIdentifier;
|
|
64
71
|
}
|
|
65
72
|
});
|
|
66
73
|
}
|
|
@@ -106,13 +113,26 @@ export default class BrowserstackLauncherService {
|
|
|
106
113
|
log.info(`Using app: ${app.app}`);
|
|
107
114
|
this._updateCaps(capabilities, 'app', app.app);
|
|
108
115
|
}
|
|
116
|
+
/**
|
|
117
|
+
* buildIdentifier in service options will take precedence over specified in capabilities
|
|
118
|
+
*/
|
|
119
|
+
if (this._options.buildIdentifier) {
|
|
120
|
+
this._buildIdentifier = this._options.buildIdentifier;
|
|
121
|
+
this._updateCaps(capabilities, 'buildIdentifier', this._buildIdentifier);
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* evaluate buildIdentifier in case unique execution identifiers are present
|
|
125
|
+
* e.g., ${BUILD_NUMBER} and ${DATE_TIME}
|
|
126
|
+
*/
|
|
127
|
+
this._handleBuildIdentifier(capabilities);
|
|
109
128
|
if (this._options.testObservability) {
|
|
110
129
|
log.debug('Sending launch start event');
|
|
111
130
|
await launchTestSession(this._options, this._config, {
|
|
112
131
|
projectName: this._projectName,
|
|
113
132
|
buildName: this._buildName,
|
|
114
133
|
buildTag: this._buildTag,
|
|
115
|
-
bstackServiceVersion: bstackServiceVersion
|
|
134
|
+
bstackServiceVersion: bstackServiceVersion,
|
|
135
|
+
buildIdentifier: this._buildIdentifier
|
|
116
136
|
});
|
|
117
137
|
}
|
|
118
138
|
if (!this._options.browserstackLocal) {
|
|
@@ -124,6 +144,9 @@ export default class BrowserstackLauncherService {
|
|
|
124
144
|
};
|
|
125
145
|
this.browserstackLocal = new BrowserstackLocalLauncher.Local();
|
|
126
146
|
this._updateCaps(capabilities, 'local');
|
|
147
|
+
if (opts.localIdentifier) {
|
|
148
|
+
this._updateCaps(capabilities, 'localIdentifier', opts.localIdentifier);
|
|
149
|
+
}
|
|
127
150
|
/**
|
|
128
151
|
* measure BrowserStack tunnel boot time
|
|
129
152
|
*/
|
|
@@ -244,6 +267,9 @@ export default class BrowserstackLauncherService {
|
|
|
244
267
|
else if (capType === 'app') {
|
|
245
268
|
capability['appium:app'] = value;
|
|
246
269
|
}
|
|
270
|
+
else if (capType === 'buildIdentifier' && value) {
|
|
271
|
+
capability['bstack:options'] = { buildIdentifier: value };
|
|
272
|
+
}
|
|
247
273
|
}
|
|
248
274
|
else if (capType === 'local') {
|
|
249
275
|
capability['browserstack.local'] = true;
|
|
@@ -251,6 +277,17 @@ export default class BrowserstackLauncherService {
|
|
|
251
277
|
else if (capType === 'app') {
|
|
252
278
|
capability.app = value;
|
|
253
279
|
}
|
|
280
|
+
else if (capType === 'buildIdentifier') {
|
|
281
|
+
if (value) {
|
|
282
|
+
capability['browserstack.buildIdentifier'] = value;
|
|
283
|
+
}
|
|
284
|
+
else {
|
|
285
|
+
delete capability['browserstack.buildIdentifier'];
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
else if (capType === 'localIdentifier') {
|
|
289
|
+
capability['browserstack.localIdentifier'] = value;
|
|
290
|
+
}
|
|
254
291
|
}
|
|
255
292
|
else if (capType === 'local') {
|
|
256
293
|
capability['bstack:options'].local = true;
|
|
@@ -258,6 +295,17 @@ export default class BrowserstackLauncherService {
|
|
|
258
295
|
else if (capType === 'app') {
|
|
259
296
|
capability['appium:app'] = value;
|
|
260
297
|
}
|
|
298
|
+
else if (capType === 'buildIdentifier') {
|
|
299
|
+
if (value) {
|
|
300
|
+
capability['bstack:options'].buildIdentifier = value;
|
|
301
|
+
}
|
|
302
|
+
else {
|
|
303
|
+
delete capability['bstack:options'].buildIdentifier;
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
else if (capType === 'localIdentifier') {
|
|
307
|
+
capability['bstack:options'].localIdentifier = value;
|
|
308
|
+
}
|
|
261
309
|
});
|
|
262
310
|
}
|
|
263
311
|
else if (typeof capabilities === 'object') {
|
|
@@ -271,6 +319,9 @@ export default class BrowserstackLauncherService {
|
|
|
271
319
|
else if (capType === 'app') {
|
|
272
320
|
caps.capabilities['appium:app'] = value;
|
|
273
321
|
}
|
|
322
|
+
else if (capType === 'buildIdentifier' && value) {
|
|
323
|
+
caps.capabilities['bstack:options'] = { buildIdentifier: value };
|
|
324
|
+
}
|
|
274
325
|
}
|
|
275
326
|
else if (capType === 'local') {
|
|
276
327
|
caps.capabilities['browserstack.local'] = true;
|
|
@@ -278,6 +329,17 @@ export default class BrowserstackLauncherService {
|
|
|
278
329
|
else if (capType === 'app') {
|
|
279
330
|
caps.capabilities.app = value;
|
|
280
331
|
}
|
|
332
|
+
else if (capType === 'buildIdentifier') {
|
|
333
|
+
if (value) {
|
|
334
|
+
caps.capabilities['browserstack.buildIdentifier'] = value;
|
|
335
|
+
}
|
|
336
|
+
else {
|
|
337
|
+
delete caps.capabilities['browserstack.buildIdentifier'];
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
else if (capType === 'localIdentifier') {
|
|
341
|
+
caps.capabilities['browserstack.localIdentifier'] = value;
|
|
342
|
+
}
|
|
281
343
|
}
|
|
282
344
|
else if (capType === 'local') {
|
|
283
345
|
caps.capabilities['bstack:options'].local = true;
|
|
@@ -285,10 +347,97 @@ export default class BrowserstackLauncherService {
|
|
|
285
347
|
else if (capType === 'app') {
|
|
286
348
|
caps.capabilities['appium:app'] = value;
|
|
287
349
|
}
|
|
350
|
+
else if (capType === 'buildIdentifier') {
|
|
351
|
+
if (value) {
|
|
352
|
+
caps.capabilities['bstack:options'].buildIdentifier = value;
|
|
353
|
+
}
|
|
354
|
+
else {
|
|
355
|
+
delete caps.capabilities['bstack:options'].buildIdentifier;
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
else if (capType === 'localIdentifier') {
|
|
359
|
+
caps.capabilities['bstack:options'].localIdentifier = value;
|
|
360
|
+
}
|
|
288
361
|
});
|
|
289
362
|
}
|
|
290
363
|
else {
|
|
291
364
|
throw new SevereServiceError('Capabilities should be an object or Array!');
|
|
292
365
|
}
|
|
293
366
|
}
|
|
367
|
+
_handleBuildIdentifier(capabilities) {
|
|
368
|
+
if (!this._buildIdentifier) {
|
|
369
|
+
return;
|
|
370
|
+
}
|
|
371
|
+
if ((!this._buildName || process.env.BROWSERSTACK_BUILD_NAME) && this._buildIdentifier) {
|
|
372
|
+
this._updateCaps(capabilities, 'buildIdentifier');
|
|
373
|
+
log.warn('Skipping buildIdentifier as buildName is not passed.');
|
|
374
|
+
return;
|
|
375
|
+
}
|
|
376
|
+
if (this._buildIdentifier && this._buildIdentifier.includes('${DATE_TIME}')) {
|
|
377
|
+
const formattedDate = new Intl.DateTimeFormat('en-GB', {
|
|
378
|
+
month: 'short',
|
|
379
|
+
day: '2-digit',
|
|
380
|
+
hour: '2-digit',
|
|
381
|
+
minute: '2-digit',
|
|
382
|
+
hour12: false
|
|
383
|
+
})
|
|
384
|
+
.format(new Date())
|
|
385
|
+
.replace(/ |, /g, '-');
|
|
386
|
+
this._buildIdentifier = this._buildIdentifier.replace('${DATE_TIME}', formattedDate);
|
|
387
|
+
this._updateCaps(capabilities, 'buildIdentifier', this._buildIdentifier);
|
|
388
|
+
}
|
|
389
|
+
if (!this._buildIdentifier.includes('${BUILD_NUMBER}')) {
|
|
390
|
+
return;
|
|
391
|
+
}
|
|
392
|
+
const ciInfo = getCiInfo();
|
|
393
|
+
if (ciInfo !== null && ciInfo.build_number) {
|
|
394
|
+
this._buildIdentifier = this._buildIdentifier.replace('${BUILD_NUMBER}', 'CI ' + ciInfo.build_number);
|
|
395
|
+
this._updateCaps(capabilities, 'buildIdentifier', this._buildIdentifier);
|
|
396
|
+
}
|
|
397
|
+
else {
|
|
398
|
+
const localBuildNumber = this._getLocalBuildNumber();
|
|
399
|
+
if (localBuildNumber) {
|
|
400
|
+
this._buildIdentifier = this._buildIdentifier.replace('${BUILD_NUMBER}', localBuildNumber);
|
|
401
|
+
this._updateCaps(capabilities, 'buildIdentifier', this._buildIdentifier);
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
/**
|
|
406
|
+
* @return {string} if buildName doesn't exist in json file, it will return 1
|
|
407
|
+
* else returns corresponding value in json file (e.g. { "wdio-build": { "identifier" : 2 } } => 2 in this case)
|
|
408
|
+
*/
|
|
409
|
+
_getLocalBuildNumber() {
|
|
410
|
+
const browserstackFolderPath = path.join(os.homedir(), '.browserstack');
|
|
411
|
+
try {
|
|
412
|
+
if (!fs.existsSync(browserstackFolderPath)) {
|
|
413
|
+
fs.mkdirSync(browserstackFolderPath);
|
|
414
|
+
}
|
|
415
|
+
const filePath = path.join(browserstackFolderPath, '.build-name-cache.json');
|
|
416
|
+
if (!fs.existsSync(filePath)) {
|
|
417
|
+
fs.appendFileSync(filePath, JSON.stringify({}));
|
|
418
|
+
}
|
|
419
|
+
const buildCacheFileData = fs.readFileSync(filePath);
|
|
420
|
+
const parsedBuildCacheFileData = JSON.parse(buildCacheFileData.toString());
|
|
421
|
+
if (this._buildName && this._buildName in parsedBuildCacheFileData) {
|
|
422
|
+
const prevIdentifier = parseInt((parsedBuildCacheFileData[this._buildName].identifier));
|
|
423
|
+
const newIdentifier = prevIdentifier + 1;
|
|
424
|
+
this._updateLocalBuildCache(filePath, this._buildName, newIdentifier);
|
|
425
|
+
return newIdentifier.toString();
|
|
426
|
+
}
|
|
427
|
+
const newIdentifier = 1;
|
|
428
|
+
this._updateLocalBuildCache(filePath, this._buildName, 1);
|
|
429
|
+
return newIdentifier.toString();
|
|
430
|
+
}
|
|
431
|
+
catch (error) {
|
|
432
|
+
return null;
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
_updateLocalBuildCache(filePath, buildName, buildIdentifier) {
|
|
436
|
+
if (!buildName || !filePath) {
|
|
437
|
+
return;
|
|
438
|
+
}
|
|
439
|
+
const jsonContent = JSON.parse(fs.readFileSync(filePath).toString());
|
|
440
|
+
jsonContent[buildName] = { 'identifier': buildIdentifier };
|
|
441
|
+
fs.writeFileSync(filePath, JSON.stringify(jsonContent));
|
|
442
|
+
}
|
|
294
443
|
}
|
package/build/types.d.ts
CHANGED
|
@@ -29,6 +29,13 @@ export interface TestObservabilityOptions {
|
|
|
29
29
|
key?: string;
|
|
30
30
|
}
|
|
31
31
|
export interface BrowserstackConfig {
|
|
32
|
+
/**
|
|
33
|
+
*`buildIdentifier` is a unique id to differentiate every execution that gets appended to
|
|
34
|
+
* buildName. Choose your buildIdentifier format from the available expressions:
|
|
35
|
+
* ${BUILD_NUMBER} (Default): Generates an incremental counter with every execution
|
|
36
|
+
* ${DATE_TIME}: Generates a Timestamp with every execution. Eg. 05-Nov-19:30
|
|
37
|
+
*/
|
|
38
|
+
buildIdentifier?: string;
|
|
32
39
|
/**
|
|
33
40
|
* Set this to true to enable BrowserStack Test Observability which will collect test related data
|
|
34
41
|
* (name, hierarchy, status, error stack trace, file name and hierarchy), test commands, etc.
|
|
@@ -169,6 +176,7 @@ export interface UserConfig {
|
|
|
169
176
|
projectName?: string;
|
|
170
177
|
buildTag?: string;
|
|
171
178
|
bstackServiceVersion?: string;
|
|
179
|
+
buildIdentifier?: string;
|
|
172
180
|
}
|
|
173
181
|
export interface UploadType {
|
|
174
182
|
event_type: string;
|
package/build/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/build/util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAQzE,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAkB,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC5F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAkBjE;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,YAAY,CAAC,mBAAmB,UAa1E;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,kBAAkB,EAAE,IAAI,CAAC,EAAE,YAAY,CAAC,gBAAgB,EAAE,WAAW,CAAC,EAAE,MAAM,6BAS/J;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,YAAY,WAWvE;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAUpF;AAED,wBAAsB,iBAAiB,CAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
|
package/build/util.js
CHANGED
|
@@ -81,6 +81,7 @@ export async function launchTestSession(options, config, bsConfig) {
|
|
|
81
81
|
format: 'json',
|
|
82
82
|
project_name: getObservabilityProject(options, bsConfig.projectName),
|
|
83
83
|
name: getObservabilityBuild(options, bsConfig.buildName),
|
|
84
|
+
build_identifier: bsConfig.buildIdentifier,
|
|
84
85
|
start_time: (new Date()).toISOString(),
|
|
85
86
|
tags: getObservabilityBuildTags(options, bsConfig.buildTag),
|
|
86
87
|
host_info: {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wdio/browserstack-service",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.4.0",
|
|
4
4
|
"description": "WebdriverIO service for better Browserstack integration",
|
|
5
5
|
"author": "Adam Bjerstedt <abjerstedt@gmail.com>",
|
|
6
6
|
"homepage": "https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-browserstack-service",
|
|
@@ -29,15 +29,15 @@
|
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"@types/gitconfiglocal": "^2.0.1",
|
|
31
31
|
"@wdio/logger": "8.1.0",
|
|
32
|
-
"@wdio/reporter": "8.
|
|
33
|
-
"@wdio/types": "8.
|
|
32
|
+
"@wdio/reporter": "8.4.0",
|
|
33
|
+
"@wdio/types": "8.4.0",
|
|
34
34
|
"browserstack-local": "^1.5.1",
|
|
35
35
|
"form-data": "^4.0.0",
|
|
36
36
|
"git-repo-info": "^2.1.1",
|
|
37
37
|
"gitconfiglocal": "^2.1.0",
|
|
38
38
|
"got": "^12.1.0",
|
|
39
39
|
"uuid": "^8.3.2",
|
|
40
|
-
"webdriverio": "8.
|
|
40
|
+
"webdriverio": "8.4.0"
|
|
41
41
|
},
|
|
42
42
|
"peerDependencies": {
|
|
43
43
|
"@wdio/cli": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0"
|
|
@@ -48,5 +48,5 @@
|
|
|
48
48
|
"publishConfig": {
|
|
49
49
|
"access": "public"
|
|
50
50
|
},
|
|
51
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "5d003ce35250c9d9dcecc9fd13a97257d6b349fe"
|
|
52
52
|
}
|