@eggjs/bin 7.1.0 → 7.3.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.
@@ -29,7 +29,7 @@ export declare abstract class BaseCommand<T extends typeof Command> extends Comm
29
29
  protected flags: Flags<T>;
30
30
  protected args: Args<T>;
31
31
  protected env: {
32
- [x: string]: string | undefined;
32
+ [key: string]: string | undefined;
33
33
  TZ?: string;
34
34
  };
35
35
  protected pkg: Record<string, any>;
@@ -11,6 +11,8 @@ const core_1 = require("@oclif/core");
11
11
  const globby_1 = __importDefault(require("globby"));
12
12
  const utils_1 = require("@eggjs/utils");
13
13
  const jest_changed_files_1 = require("jest-changed-files");
14
+ // @ts-expect-error no types
15
+ const ci_parallel_vars_1 = __importDefault(require("ci-parallel-vars"));
14
16
  const baseCommand_js_1 = require("../baseCommand.js");
15
17
  const debug = (0, node_util_1.debuglog)('@eggjs/bin/commands/test');
16
18
  class Test extends baseCommand_js_1.BaseCommand {
@@ -156,12 +158,23 @@ class Test extends baseCommand_js_1.BaseCommand {
156
158
  }
157
159
  pattern = pattern.concat(['!test/fixtures', '!test/node_modules']);
158
160
  // expand glob and skip node_modules and fixtures
159
- const files = globby_1.default.sync(pattern, { cwd: flags.base });
161
+ let files = globby_1.default.sync(pattern, { cwd: flags.base });
160
162
  files.sort();
161
163
  if (files.length === 0) {
162
164
  console.log('No test files found with pattern %o', pattern);
163
165
  return;
164
166
  }
167
+ // split up test files in parallel CI jobs
168
+ if (ci_parallel_vars_1.default) {
169
+ const { index: currentIndex, total: totalRuns } = ci_parallel_vars_1.default;
170
+ const fileCount = files.length;
171
+ const each = Math.floor(fileCount / totalRuns);
172
+ const remainder = fileCount % totalRuns;
173
+ const offset = Math.min(currentIndex, remainder) + (currentIndex * each);
174
+ const currentFileCount = each + (currentIndex < remainder ? 1 : 0);
175
+ files = files.slice(offset, offset + currentFileCount);
176
+ console.log('# Split test files in parallel CI jobs: %d/%d, files: %d/%d', currentIndex + 1, totalRuns, files.length, fileCount);
177
+ }
165
178
  // auto add setup file as the first test file
166
179
  const setupFile = node_path_1.default.join(flags.base, `test/.setup.${ext}`);
167
180
  try {
@@ -206,4 +219,4 @@ class Test extends baseCommand_js_1.BaseCommand {
206
219
  }
207
220
  }
208
221
  exports.default = Test;
209
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy90ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEseUNBQXFDO0FBQ3JDLDBEQUE2QjtBQUM3QixzREFBeUI7QUFDekIsZ0VBQWtDO0FBQ2xDLHNDQUEwQztBQUMxQyxvREFBNEI7QUFDNUIsd0NBQWtFO0FBQ2xFLDJEQUE2RDtBQUM3RCxzREFBZ0Q7QUFFaEQsTUFBTSxLQUFLLEdBQUcsSUFBQSxvQkFBUSxFQUFDLDBCQUEwQixDQUFDLENBQUM7QUFFbkQsTUFBcUIsSUFBNEIsU0FBUSw0QkFBYztJQUNyRSxNQUFNLENBQVUsSUFBSSxHQUFHO1FBQ3JCLElBQUksRUFBRSxXQUFJLENBQUMsTUFBTSxDQUFDO1lBQ2hCLFdBQVcsRUFBRSxpQkFBaUI7U0FDL0IsQ0FBQztLQUNILENBQUM7SUFFRixNQUFNLENBQVUsV0FBVyxHQUFHLGNBQWMsQ0FBQztJQUU3QyxNQUFNLENBQVUsUUFBUSxHQUFHO1FBQ3pCLHFDQUFxQztRQUNyQyx3REFBd0Q7UUFDeEQsOEVBQThFO1FBQzlFLDRDQUE0QztRQUM1Qyx1REFBdUQ7S0FDeEQsQ0FBQztJQUVGLE1BQU0sQ0FBVSxLQUFLLEdBQUc7UUFDdEIsSUFBSSxFQUFFLFlBQUssQ0FBQyxPQUFPLENBQUM7WUFDbEIsV0FBVyxFQUFFLHlDQUF5QztZQUN0RCxPQUFPLEVBQUUsS0FBSztZQUNkLElBQUksRUFBRSxHQUFHO1NBQ1YsQ0FBQztRQUNGLE9BQU8sRUFBRSxZQUFLLENBQUMsT0FBTyxDQUFDO1lBQ3JCLElBQUksRUFBRSxHQUFHO1lBQ1QsV0FBVyxFQUFFLHVDQUF1QztZQUNwRCxPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxJQUFJLE9BQU8sQ0FBQztTQUN2RCxDQUFDO1FBQ0YsWUFBWSxFQUFFLFlBQUssQ0FBQyxPQUFPLENBQUM7WUFDMUIsV0FBVyxFQUFF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
222
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy90ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEseUNBQXFDO0FBQ3JDLDBEQUE2QjtBQUM3QixzREFBeUI7QUFDekIsZ0VBQWtDO0FBQ2xDLHNDQUEwQztBQUMxQyxvREFBNEI7QUFDNUIsd0NBQWtFO0FBQ2xFLDJEQUE2RDtBQUM3RCw0QkFBNEI7QUFDNUIsd0VBQThDO0FBQzlDLHNEQUFnRDtBQUVoRCxNQUFNLEtBQUssR0FBRyxJQUFBLG9CQUFRLEVBQUMsMEJBQTBCLENBQUMsQ0FBQztBQUVuRCxNQUFxQixJQUE0QixTQUFRLDRCQUFjO0lBQ3JFLE1BQU0sQ0FBVSxJQUFJLEdBQUc7UUFDckIsSUFBSSxFQUFFLFdBQUksQ0FBQyxNQUFNLENBQUM7WUFDaEIsV0FBVyxFQUFFLGlCQUFpQjtTQUMvQixDQUFDO0tBQ0gsQ0FBQztJQUVGLE1BQU0sQ0FBVSxXQUFXLEdBQUcsY0FBYyxDQUFDO0lBRTdDLE1BQU0sQ0FBVSxRQUFRLEdBQUc7UUFDekIscUNBQXFDO1FBQ3JDLHdEQUF3RDtRQUN4RCw4RUFBOEU7UUFDOUUsNENBQTRDO1FBQzVDLHVEQUF1RDtLQUN4RCxDQUFDO0lBRUYsTUFBTSxDQUFVLEtBQUssR0FBRztRQUN0QixJQUFJLEVBQUUsWUFBSyxDQUFDLE9BQU8sQ0FBQztZQUNsQixXQUFXLEVBQUUseUNBQXlDO1lBQ3RELE9BQU8sRUFBRSxLQUFLO1lBQ2QsSUFBSSxFQUFFLEdBQUc7U0FDVixDQUFDO1FBQ0YsT0FBTyxFQUFFLFlBQUssQ0FBQyxPQUFPLENBQUM7WUFDckIsSUFBSSxFQUFFLEdBQUc7WUFDVCxXQUFXLEVBQUUsdUNBQXVDO1lBQ3BELE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLElBQUksT0FBTyxDQUFDO1NBQ3ZELENBQUM7UUFDRixZQUFZLEVBQUUsWUFBSyxDQUFD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
@@ -29,7 +29,7 @@ export declare abstract class BaseCommand<T extends typeof Command> extends Comm
29
29
  protected flags: Flags<T>;
30
30
  protected args: Args<T>;
31
31
  protected env: {
32
- [x: string]: string | undefined;
32
+ [key: string]: string | undefined;
33
33
  TZ?: string;
34
34
  };
35
35
  protected pkg: Record<string, any>;
@@ -6,6 +6,8 @@ import { Args, Flags } from '@oclif/core';
6
6
  import globby from 'globby';
7
7
  import { importResolve, detectType, EggType } from '@eggjs/utils';
8
8
  import { getChangedFilesForRoots } from 'jest-changed-files';
9
+ // @ts-expect-error no types
10
+ import ciParallelVars from 'ci-parallel-vars';
9
11
  import { BaseCommand } from '../baseCommand.js';
10
12
  const debug = debuglog('@eggjs/bin/commands/test');
11
13
  export default class Test extends BaseCommand {
@@ -151,12 +153,23 @@ export default class Test extends BaseCommand {
151
153
  }
152
154
  pattern = pattern.concat(['!test/fixtures', '!test/node_modules']);
153
155
  // expand glob and skip node_modules and fixtures
154
- const files = globby.sync(pattern, { cwd: flags.base });
156
+ let files = globby.sync(pattern, { cwd: flags.base });
155
157
  files.sort();
156
158
  if (files.length === 0) {
157
159
  console.log('No test files found with pattern %o', pattern);
158
160
  return;
159
161
  }
162
+ // split up test files in parallel CI jobs
163
+ if (ciParallelVars) {
164
+ const { index: currentIndex, total: totalRuns } = ciParallelVars;
165
+ const fileCount = files.length;
166
+ const each = Math.floor(fileCount / totalRuns);
167
+ const remainder = fileCount % totalRuns;
168
+ const offset = Math.min(currentIndex, remainder) + (currentIndex * each);
169
+ const currentFileCount = each + (currentIndex < remainder ? 1 : 0);
170
+ files = files.slice(offset, offset + currentFileCount);
171
+ console.log('# Split test files in parallel CI jobs: %d/%d, files: %d/%d', currentIndex + 1, totalRuns, files.length, fileCount);
172
+ }
160
173
  // auto add setup file as the first test file
161
174
  const setupFile = path.join(flags.base, `test/.setup.${ext}`);
162
175
  try {
@@ -200,4 +213,4 @@ export default class Test extends BaseCommand {
200
213
  return files;
201
214
  }
202
215
  }
203
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy90ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQzdCLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN6QixPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsQyxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVoRCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsMEJBQTBCLENBQUMsQ0FBQztBQUVuRCxNQUFNLENBQUMsT0FBTyxPQUFPLElBQTRCLFNBQVEsV0FBYztJQUNyRSxNQUFNLENBQVUsSUFBSSxHQUFHO1FBQ3JCLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ2hCLFdBQVcsRUFBRSxpQkFBaUI7U0FDL0IsQ0FBQztLQUNILENBQUM7SUFFRixNQUFNLENBQVUsV0FBVyxHQUFHLGNBQWMsQ0FBQztJQUU3QyxNQUFNLENBQVUsUUFBUSxHQUFHO1FBQ3pCLHFDQUFxQztRQUNyQyx3REFBd0Q7UUFDeEQsOEVBQThFO1FBQzlFLDRDQUE0QztRQUM1Qyx1REFBdUQ7S0FDeEQsQ0FBQztJQUVGLE1BQU0sQ0FBVSxLQUFLLEdBQUc7UUFDdEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDbEIsV0FBVyxFQUFFLHlDQUF5QztZQUN0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
216
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy90ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQzdCLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN6QixPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsQyxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdELDRCQUE0QjtBQUM1QixPQUFPLGNBQWMsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFaEQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLDBCQUEwQixDQUFDLENBQUM7QUFFbkQsTUFBTSxDQUFDLE9BQU8sT0FBTyxJQUE0QixTQUFRLFdBQWM7SUFDckUsTUFBTSxDQUFVLElBQUksR0FBRztRQUNyQixJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUNoQixXQUFXLEVBQUUsaUJBQWlCO1NBQy9CLENBQUM7S0FDSCxDQUFDO0lBRUYsTUFBTSxDQUFVLFdBQVcsR0FBRyxjQUFjLENBQUM7SUFFN0MsTUFBTSxDQUFVLFFBQVEsR0FBRztRQUN6QixxQ0FBcUM7UUFDckMsd0RBQXdEO1FBQ3hELDhFQUE4RTtRQUM5RSw0Q0FBNEM7UUFDNUMsdURBQXVEO0tBQ3hELENBQUM7SUFFRixNQUFNLENBQVUsS0FBSyxHQUFHO1FBQ3RCLElBQUksRUFBRSxL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
package/dist/package.json CHANGED
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "name": "@eggjs/bin",
3
- "version": "7.1.0"
3
+ "version": "7.3.0"
4
4
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eggjs/bin",
3
- "version": "7.1.0",
3
+ "version": "7.3.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -23,12 +23,13 @@
23
23
  "@types/mocha": "^10.0.10",
24
24
  "@types/supertest": "^6.0.2",
25
25
  "c8": "^10.0.0",
26
+ "ci-parallel-vars": "^1.0.1",
26
27
  "detect-port": "^2.0.0",
27
28
  "egg-ts-helper": "^3.0.0",
28
29
  "globby": "^11.1.0",
29
30
  "jest-changed-files": "^29.4.2",
30
31
  "mocha": "^11.0.1",
31
- "mochawesome-with-mocha": "^7.1.3",
32
+ "mochawesome-with-mocha": "^8.0.0",
32
33
  "runscript": "^2.0.0",
33
34
  "ts-node": "^10.9.2",
34
35
  "tsconfig-paths": "^4.1.2",
@@ -55,8 +56,8 @@
55
56
  "cpy-cli": "^5.0.0",
56
57
  "cross-env": "^7.0.3",
57
58
  "egg": "^4.0.7",
58
- "esbuild": "^0.17.7",
59
- "esbuild-register": "^3.4.2",
59
+ "esbuild": "^0.25.0",
60
+ "esbuild-register": "^3.6.0",
60
61
  "eslint": "8",
61
62
  "eslint-config-egg": "14",
62
63
  "npminstall": "^7.12.0",
@@ -6,6 +6,8 @@ import { Args, Flags } from '@oclif/core';
6
6
  import globby from 'globby';
7
7
  import { importResolve, detectType, EggType } from '@eggjs/utils';
8
8
  import { getChangedFilesForRoots } from 'jest-changed-files';
9
+ // @ts-expect-error no types
10
+ import ciParallelVars from 'ci-parallel-vars';
9
11
  import { BaseCommand } from '../baseCommand.js';
10
12
 
11
13
  const debug = debuglog('@eggjs/bin/commands/test');
@@ -166,7 +168,7 @@ export default class Test<T extends typeof Test> extends BaseCommand<T> {
166
168
  pattern = pattern.concat([ '!test/fixtures', '!test/node_modules' ]);
167
169
 
168
170
  // expand glob and skip node_modules and fixtures
169
- const files = globby.sync(pattern, { cwd: flags.base });
171
+ let files = globby.sync(pattern, { cwd: flags.base });
170
172
  files.sort();
171
173
 
172
174
  if (files.length === 0) {
@@ -174,6 +176,19 @@ export default class Test<T extends typeof Test> extends BaseCommand<T> {
174
176
  return;
175
177
  }
176
178
 
179
+ // split up test files in parallel CI jobs
180
+ if (ciParallelVars) {
181
+ const { index: currentIndex, total: totalRuns } = ciParallelVars as { index: number, total: number };
182
+ const fileCount = files.length;
183
+ const each = Math.floor(fileCount / totalRuns);
184
+ const remainder = fileCount % totalRuns;
185
+ const offset = Math.min(currentIndex, remainder) + (currentIndex * each);
186
+ const currentFileCount = each + (currentIndex < remainder ? 1 : 0);
187
+ files = files.slice(offset, offset + currentFileCount);
188
+ console.log('# Split test files in parallel CI jobs: %d/%d, files: %d/%d',
189
+ currentIndex + 1, totalRuns, files.length, fileCount);
190
+ }
191
+
177
192
  // auto add setup file as the first test file
178
193
  const setupFile = path.join(flags.base, `test/.setup.${ext}`);
179
194
  try {