lage 0.40.0 → 0.41.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/CHANGELOG.json CHANGED
@@ -2,7 +2,22 @@
2
2
  "name": "lage",
3
3
  "entries": [
4
4
  {
5
- "date": "Wed, 20 Apr 2022 20:26:03 GMT",
5
+ "date": "Fri, 22 Apr 2022 16:41:26 GMT",
6
+ "tag": "lage_v0.41.0",
7
+ "version": "0.41.0",
8
+ "comments": {
9
+ "minor": [
10
+ {
11
+ "comment": "add ado logger",
12
+ "author": "cheruiyotbryan@gmail.com",
13
+ "commit": "54bd1d03b7cb1fc58a4308244b9541609eedafd7",
14
+ "package": "lage"
15
+ }
16
+ ]
17
+ }
18
+ },
19
+ {
20
+ "date": "Wed, 20 Apr 2022 20:26:07 GMT",
6
21
  "tag": "lage_v0.40.0",
7
22
  "version": "0.40.0",
8
23
  "comments": {
package/CHANGELOG.md CHANGED
@@ -1,12 +1,20 @@
1
1
  # Change Log - lage
2
2
 
3
- This log was last generated on Wed, 20 Apr 2022 20:26:03 GMT and should not be manually modified.
3
+ This log was last generated on Fri, 22 Apr 2022 16:41:26 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## 0.41.0
8
+
9
+ Fri, 22 Apr 2022 16:41:26 GMT
10
+
11
+ ### Minor changes
12
+
13
+ - add ado logger (cheruiyotbryan@gmail.com)
14
+
7
15
  ## 0.40.0
8
16
 
9
- Wed, 20 Apr 2022 20:26:03 GMT
17
+ Wed, 20 Apr 2022 20:26:07 GMT
10
18
 
11
19
  ### Minor changes
12
20
 
@@ -1,4 +1,5 @@
1
1
  import { Config } from "../types/Config";
2
2
  import { NpmLogReporter } from "./reporters/NpmLogReporter";
3
3
  import { JsonReporter } from "./reporters/JsonReporter";
4
- export declare function initReporters(config: Config): (NpmLogReporter | JsonReporter)[];
4
+ import { AdoReporter } from "./reporters/AdoReporter";
5
+ export declare function initReporters(config: Config): (NpmLogReporter | JsonReporter | AdoReporter)[];
@@ -4,6 +4,7 @@ const Logger_1 = require("./Logger");
4
4
  const NpmLogReporter_1 = require("./reporters/NpmLogReporter");
5
5
  const LogLevel_1 = require("./LogLevel");
6
6
  const JsonReporter_1 = require("./reporters/JsonReporter");
7
+ const AdoReporter_1 = require("./reporters/AdoReporter");
7
8
  function initReporters(config) {
8
9
  // Initialize logger
9
10
  let logLevel = config.verbose ? LogLevel_1.LogLevel.verbose : LogLevel_1.LogLevel.info;
@@ -19,6 +20,9 @@ function initReporters(config) {
19
20
  npmLoggerOptions: config.loggerOptions
20
21
  }),
21
22
  ];
23
+ if (config.reporter === "adoLog") { // Will always include NpmLogReporter and add AdoReporter
24
+ reporters.push(new AdoReporter_1.AdoReporter());
25
+ }
22
26
  Logger_1.Logger.reporters = reporters;
23
27
  return reporters;
24
28
  }
@@ -0,0 +1,7 @@
1
+ import { RunContext } from '../../types/RunContext';
2
+ import { Reporter } from './Reporter';
3
+ import { LogEntry } from '../LogEntry';
4
+ export declare class AdoReporter implements Reporter {
5
+ log(entry: LogEntry): void;
6
+ summarize(context: RunContext): void;
7
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const task_scheduler_1 = require("@microsoft/task-scheduler");
4
+ class AdoReporter {
5
+ // not being used since the npm logger is used in its place
6
+ log(entry) { }
7
+ summarize(context) {
8
+ var _a;
9
+ const { measures, tasks } = context;
10
+ const removeColorCodes = new RegExp('\\x1B\[[0-9;]*[A-Za-z]', 'g');
11
+ if (measures.failedTasks && measures.failedTasks.length > 0) {
12
+ const failedPackages = [];
13
+ for (const failedTask of measures.failedTasks) {
14
+ const { pkg, task } = failedTask;
15
+ const taskId = task_scheduler_1.getTaskId(pkg, task);
16
+ const taskLogs = (_a = tasks.get(taskId)) === null || _a === void 0 ? void 0 : _a.logger.getLogs();
17
+ let packageLogs = '';
18
+ if (taskLogs) {
19
+ packageLogs += `[${pkg} ${task}] `;
20
+ for (let i = 0; i < taskLogs.length; i += 1) {
21
+ const _logLine = taskLogs[i].msg.replace(removeColorCodes, '').replace('\n', '');
22
+ packageLogs += `${_logLine} `;
23
+ }
24
+ }
25
+ failedPackages.push({ pkg, taskLogs: packageLogs, task });
26
+ }
27
+ const logGroup = [];
28
+ let packagesMessage = `##vso[task.logissue type=error]Your build failed on the following packages => `;
29
+ failedPackages.forEach(({ pkg, task, taskLogs }) => {
30
+ packagesMessage += `[${pkg} ${task}], `;
31
+ if (taskLogs) {
32
+ logGroup.push(taskLogs);
33
+ }
34
+ });
35
+ packagesMessage += "find the error logs above with the prefix 'ERR!'";
36
+ console.log(packagesMessage);
37
+ console.log(`##vso[task.logissue type=warning]${logGroup.join(' | ')}`);
38
+ }
39
+ }
40
+ }
41
+ exports.AdoReporter = AdoReporter;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lage",
3
- "version": "0.40.0",
3
+ "version": "0.41.0",
4
4
  "description": "A monorepo task runner",
5
5
  "repository": {
6
6
  "url": "https://github.com/microsoft/lage#stable"