@grnsft/if 0.3.2 → 0.3.3-beta.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/.commitlintrc.js +3 -0
- package/.release-it.json +18 -0
- package/CONTRIBUTING.md +77 -4
- package/README.md +34 -26
- package/build/builtins/export-csv-raw.js +4 -4
- package/build/builtins/export-csv.js +5 -5
- package/build/builtins/export-log.js +26 -2
- package/build/builtins/export-yaml.js +3 -3
- package/build/config/config.d.ts +3 -3
- package/build/config/config.js +23 -27
- package/build/config/strings.d.ts +1 -0
- package/build/config/strings.js +8 -3
- package/build/index.js +23 -14
- package/build/lib/environment.d.ts +5 -0
- package/build/lib/environment.js +69 -0
- package/build/lib/exhaust.d.ts +2 -1
- package/build/lib/exhaust.js +11 -9
- package/build/lib/initialize.d.ts +2 -2
- package/build/lib/initialize.js +5 -5
- package/build/lib/load.d.ts +1 -29
- package/build/lib/load.js +2 -5
- package/build/types/environment.d.ts +18 -0
- package/build/types/environment.js +3 -0
- package/build/types/manifest.d.ts +1 -0
- package/build/types/manifest.js +1 -1
- package/build/types/process-args.d.ts +13 -1
- package/build/types/process-args.js +1 -1
- package/build/util/args.d.ts +3 -5
- package/build/util/args.js +14 -10
- package/build/util/errors.d.ts +1 -1
- package/build/util/errors.js +2 -3
- package/build/util/helpers.d.ts +6 -0
- package/build/util/helpers.js +9 -3
- package/build/util/os-checker.d.ts +7 -0
- package/build/util/os-checker.js +97 -0
- package/build/util/validations.d.ts +90 -4
- package/build/util/validations.js +14 -2
- package/github-processes.md +10 -0
- package/{examples/manifests/pipeline-demo-2.yml → manifests/bugs/aggregation-error-wrong-metric.yml} +8 -34
- package/manifests/bugs/azure-importer-ignoring-defaults.yml +61 -0
- package/manifests/bugs/azure-importer-incorrect-calculation.yml +56 -0
- package/manifests/bugs/initialize-error-no-config.yml +27 -0
- package/manifests/bugs/initialize-error-no-path.yml +28 -0
- package/manifests/bugs/initialize-error-no-plugins.yml +23 -0
- package/manifests/bugs/input-error-missing-duration.yml +21 -0
- package/manifests/bugs/pipeline-error-naming-mismatch.yml +28 -0
- package/manifests/bugs/pipeline-error-uninitialized-plugin.yml +29 -0
- package/{examples/manifests/boavizta-pipeline.yml → manifests/bugs/pipeline-ordering-error.yml} +7 -10
- package/{examples/manifests → manifests/examples}/basic.yml +3 -2
- package/{examples/manifests → manifests/examples}/generics.yml +2 -2
- package/{examples/manifests/asim-demo.yml → manifests/examples/mock-cpu-util-to-carbon.yml} +3 -7
- package/{examples/manifests → manifests/examples}/nesting.yml +3 -2
- package/{examples/manifests → manifests/examples}/pipeline-teads-sci.yml +1 -1
- package/{examples/manifests/pipeline-demo.yml → manifests/examples/pipeline-with-aggregate.yml} +2 -2
- package/{examples/manifests → manifests/examples}/pipeline-with-mocks.yml +3 -2
- package/manifests/features/aggregate-horizontal.yml +44 -0
- package/manifests/features/aggregate-vertical.yml +44 -0
- package/manifests/features/aggregate.yml +44 -0
- package/manifests/integrations/mock-obs-groupby.yml +39 -0
- package/manifests/integrations/mock-obs-time-sync.yml +65 -0
- package/manifests/plugins/cloud-metadata/failure-invalid-vendor.yaml +21 -0
- package/{examples/manifests/cloud-metadata.yml → manifests/plugins/cloud-metadata/success.yml} +2 -1
- package/manifests/plugins/coefficient/failure-invalid-config-input-param.yml +24 -0
- package/{examples/manifests/coefficient.yml → manifests/plugins/coefficient/success.yml} +2 -1
- package/manifests/plugins/divide/failure-invalid-config-denominator.yml +39 -0
- package/manifests/plugins/divide/success.yml +39 -0
- package/manifests/plugins/groupby/failure-invalid-config-group.yml +47 -0
- package/{examples/manifests/group-by.yml → manifests/plugins/groupby/success.yml} +3 -2
- package/manifests/plugins/mock-observations/failure-invalid-config-cpu-range.yml +34 -0
- package/{examples/manifests/mock-observation.yml → manifests/plugins/mock-observations/success.yml} +2 -1
- package/manifests/plugins/multiply/failure-input-parameter-is-missing.yml +24 -0
- package/{examples/manifests/multiply.yml → manifests/plugins/multiply/success.yml} +3 -2
- package/manifests/plugins/regex/failure-missing-input-param.yml +24 -0
- package/{examples/manifests/regex.yml → manifests/plugins/regex/success.yml} +3 -2
- package/manifests/plugins/sci/failure-invalid-config-value.yml +28 -0
- package/{examples/manifests/sci.yml → manifests/plugins/sci/success.yml} +3 -2
- package/manifests/plugins/sci-m/failure-invalid-default-emission-value.yml +24 -0
- package/{examples/manifests/sci-m.yml → manifests/plugins/sci-m/success.yml} +2 -1
- package/manifests/plugins/shell/failure-invalid-command.yml +21 -0
- package/{examples/manifests/shell.yml → manifests/plugins/shell/success.yml} +3 -2
- package/manifests/plugins/sum/failure-missing-input-param.yml +24 -0
- package/{examples/manifests/sum.yml → manifests/plugins/sum/success.yml} +3 -2
- package/manifests/plugins/tdp-finder/failure-missing-input-param.yml +18 -0
- package/{examples/manifests/tdp-finder.yml → manifests/plugins/tdp-finder/success.yml} +2 -1
- package/manifests/plugins/time-sync/failure-config-start-later-end.yml +34 -0
- package/{examples/manifests/time-sync.yml → manifests/plugins/time-sync/success.yml} +4 -2
- package/package.json +4 -2
- package/examples/manifests/azure-importer.yml +0 -24
- package/examples/manifests/basic-demo.yml +0 -70
- package/examples/manifests/boavizta-cloud.yml +0 -20
- package/examples/manifests/boavizta.yml +0 -26
- package/examples/manifests/ccf.yml +0 -20
- package/examples/manifests/cloud-metadata-teads.yml +0 -41
- package/examples/manifests/co2js.yml +0 -30
- package/examples/manifests/csv-export.yml +0 -34
- package/examples/manifests/e-mem.yml +0 -21
- package/examples/manifests/e-net.yml +0 -22
- package/examples/manifests/nesting-demo.yml +0 -89
- package/examples/manifests/pipeline-demo-1.yml +0 -85
- package/examples/manifests/pipeline-with-generics.yml +0 -152
- package/examples/manifests/sci-e.yml +0 -19
- package/examples/manifests/sci-o.yml +0 -26
- package/examples/manifests/teads-curve.yml +0 -20
- package/examples/manifests/watt-time.yml +0 -35
- /package/{examples/manifests/divide.yml → manifests/integrations/cloud-metadata-divide-boavizta.yml} +0 -0
package/build/util/errors.js
CHANGED
|
@@ -3,8 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ERRORS = void 0;
|
|
4
4
|
const CUSTOM_ERRORS = [
|
|
5
5
|
'CliInputError',
|
|
6
|
-
'
|
|
7
|
-
'MakeDirectoryError',
|
|
6
|
+
'ExhaustError',
|
|
8
7
|
'ManifestValidationError',
|
|
9
8
|
'ModuleInitializationError',
|
|
10
9
|
'InputValidationError',
|
|
@@ -26,4 +25,4 @@ exports.ERRORS = CUSTOM_ERRORS.reduce((acc, className) => {
|
|
|
26
25
|
};
|
|
27
26
|
return acc;
|
|
28
27
|
}, {});
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvZXJyb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLE1BQU0sYUFBYSxHQUFHO0lBQ3BCLGVBQWU7SUFDZixjQUFjO0lBQ2QseUJBQXlCO0lBQ3pCLDJCQUEyQjtJQUMzQixzQkFBc0I7SUFDdEIsK0JBQStCO0lBQy9CLHNCQUFzQjtJQUN0Qix1QkFBdUI7SUFDdkIsMEJBQTBCO0lBQzFCLGdCQUFnQjtDQUNSLENBQUM7QUFNRSxRQUFBLE1BQU0sR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxFQUFFO0lBQzVELEdBQUcsR0FBRztRQUNKLEdBQUcsR0FBRztRQUNOLENBQUMsU0FBUyxDQUFDLEVBQUUsS0FBTSxTQUFRLEtBQUs7WUFDOUIsWUFBWSxPQUFlO2dCQUN6QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztZQUNwQyxDQUFDO1NBQ0Y7S0FDRixDQUFDO0lBRUYsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLEVBQUUsRUFBa0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgQ1VTVE9NX0VSUk9SUyA9IFtcbiAgJ0NsaUlucHV0RXJyb3InLFxuICAnRXhoYXVzdEVycm9yJyxcbiAgJ01hbmlmZXN0VmFsaWRhdGlvbkVycm9yJyxcbiAgJ01vZHVsZUluaXRpYWxpemF0aW9uRXJyb3InLFxuICAnSW5wdXRWYWxpZGF0aW9uRXJyb3InLFxuICAnSW52YWxpZEFnZ3JlZ2F0aW9uUGFyYW1zRXJyb3InLFxuICAnSW52YWxpZEdyb3VwaW5nRXJyb3InLFxuICAnUGx1Z2luQ3JlZGVudGlhbEVycm9yJyxcbiAgJ1BsdWdpbkluaXRhbGl6YXRpb25FcnJvcicsXG4gICdXcml0ZUZpbGVFcnJvcicsXG5dIGFzIGNvbnN0O1xuXG50eXBlIEN1c3RvbUVycm9ycyA9IHtcbiAgW0sgaW4gKHR5cGVvZiBDVVNUT01fRVJST1JTKVtudW1iZXJdXTogRXJyb3JDb25zdHJ1Y3Rvcjtcbn07XG5cbmV4cG9ydCBjb25zdCBFUlJPUlMgPSBDVVNUT01fRVJST1JTLnJlZHVjZSgoYWNjLCBjbGFzc05hbWUpID0+IHtcbiAgYWNjID0ge1xuICAgIC4uLmFjYyxcbiAgICBbY2xhc3NOYW1lXTogY2xhc3MgZXh0ZW5kcyBFcnJvciB7XG4gICAgICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIobWVzc2FnZSk7XG4gICAgICAgIHRoaXMubmFtZSA9IHRoaXMuY29uc3RydWN0b3IubmFtZTtcbiAgICAgIH1cbiAgICB9LFxuICB9O1xuXG4gIHJldHVybiBhY2M7XG59LCB7fSBhcyBDdXN0b21FcnJvcnMpO1xuIl19
|
package/build/util/helpers.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { exec } from 'node:child_process';
|
|
1
3
|
/**
|
|
2
4
|
* Impact engine error handler. Logs errors and appends issue template if error is unknown.
|
|
3
5
|
*/
|
|
@@ -6,3 +8,7 @@ export declare const andHandle: (error: Error) => void;
|
|
|
6
8
|
* Append entries from defaults which are missing from inputs.
|
|
7
9
|
*/
|
|
8
10
|
export declare const mergeObjects: (defaults: any, input: any) => Record<string, any>;
|
|
11
|
+
/**
|
|
12
|
+
* Promise version of Node's `exec` from `child-process`.
|
|
13
|
+
*/
|
|
14
|
+
export declare const execPromise: typeof exec.__promisify__;
|
package/build/util/helpers.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.mergeObjects = exports.andHandle = void 0;
|
|
4
|
-
const
|
|
3
|
+
exports.execPromise = exports.mergeObjects = exports.andHandle = void 0;
|
|
4
|
+
const node_child_process_1 = require("node:child_process");
|
|
5
|
+
const node_util_1 = require("node:util");
|
|
5
6
|
const errors_1 = require("./errors");
|
|
6
7
|
const logger_1 = require("./logger");
|
|
8
|
+
const config_1 = require("../config");
|
|
7
9
|
const { ISSUE_TEMPLATE } = config_1.STRINGS;
|
|
8
10
|
/**
|
|
9
11
|
* Impact engine error handler. Logs errors and appends issue template if error is unknown.
|
|
@@ -32,4 +34,8 @@ const mergeObjects = (defaults, input) => {
|
|
|
32
34
|
return merged;
|
|
33
35
|
};
|
|
34
36
|
exports.mergeObjects = mergeObjects;
|
|
35
|
-
|
|
37
|
+
/**
|
|
38
|
+
* Promise version of Node's `exec` from `child-process`.
|
|
39
|
+
*/
|
|
40
|
+
exports.execPromise = (0, node_util_1.promisify)(node_child_process_1.exec);
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkRBQXdDO0FBQ3hDLHlDQUFvQztBQUVwQyxxQ0FBZ0M7QUFDaEMscUNBQWdDO0FBRWhDLHNDQUFrQztBQUVsQyxNQUFNLEVBQUMsY0FBYyxFQUFDLEdBQUcsZ0JBQU8sQ0FBQztBQUVqQzs7R0FFRztBQUNJLE1BQU0sU0FBUyxHQUFHLENBQUMsS0FBWSxFQUFFLEVBQUU7SUFDeEMsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFNLENBQUMsQ0FBQztJQUV4QyxlQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXBCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNyQyxlQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0tBQzdCO0FBQ0gsQ0FBQyxDQUFDO0FBUlcsUUFBQSxTQUFTLGFBUXBCO0FBRUY7O0dBRUc7QUFDSSxNQUFNLFlBQVksR0FBRyxDQUFDLFFBQWEsRUFBRSxLQUFVLEVBQUUsRUFBRTtJQUN4RCxNQUFNLE1BQU0sR0FBd0IsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTNELEtBQUssTUFBTSxHQUFHLElBQUksUUFBUSxFQUFFO1FBQzFCLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxLQUFLLENBQUMsRUFBRTtZQUNuQixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzdCO1FBRUQsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDckQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUM3QjtLQUNGO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBZFcsUUFBQSxZQUFZLGdCQWN2QjtBQUVGOztHQUVHO0FBQ1UsUUFBQSxXQUFXLEdBQUcsSUFBQSxxQkFBUyxFQUFDLHlCQUFJLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZXhlY30gZnJvbSAnbm9kZTpjaGlsZF9wcm9jZXNzJztcbmltcG9ydCB7cHJvbWlzaWZ5fSBmcm9tICdub2RlOnV0aWwnO1xuXG5pbXBvcnQge0VSUk9SU30gZnJvbSAnLi9lcnJvcnMnO1xuaW1wb3J0IHtsb2dnZXJ9IGZyb20gJy4vbG9nZ2VyJztcblxuaW1wb3J0IHtTVFJJTkdTfSBmcm9tICcuLi9jb25maWcnO1xuXG5jb25zdCB7SVNTVUVfVEVNUExBVEV9ID0gU1RSSU5HUztcblxuLyoqXG4gKiBJbXBhY3QgZW5naW5lIGVycm9yIGhhbmRsZXIuIExvZ3MgZXJyb3JzIGFuZCBhcHBlbmRzIGlzc3VlIHRlbXBsYXRlIGlmIGVycm9yIGlzIHVua25vd24uXG4gKi9cbmV4cG9ydCBjb25zdCBhbmRIYW5kbGUgPSAoZXJyb3I6IEVycm9yKSA9PiB7XG4gIGNvbnN0IGtub3duRXJyb3JzID0gT2JqZWN0LmtleXMoRVJST1JTKTtcblxuICBsb2dnZXIuZXJyb3IoZXJyb3IpO1xuXG4gIGlmICgha25vd25FcnJvcnMuaW5jbHVkZXMoZXJyb3IubmFtZSkpIHtcbiAgICBsb2dnZXIud2FybihJU1NVRV9URU1QTEFURSk7XG4gIH1cbn07XG5cbi8qKlxuICogQXBwZW5kIGVudHJpZXMgZnJvbSBkZWZhdWx0cyB3aGljaCBhcmUgbWlzc2luZyBmcm9tIGlucHV0cy5cbiAqL1xuZXhwb3J0IGNvbnN0IG1lcmdlT2JqZWN0cyA9IChkZWZhdWx0czogYW55LCBpbnB1dDogYW55KSA9PiB7XG4gIGNvbnN0IG1lcmdlZDogUmVjb3JkPHN0cmluZywgYW55PiA9IHN0cnVjdHVyZWRDbG9uZShpbnB1dCk7XG5cbiAgZm9yIChjb25zdCBrZXkgaW4gZGVmYXVsdHMpIHtcbiAgICBpZiAoIShrZXkgaW4gaW5wdXQpKSB7XG4gICAgICBtZXJnZWRba2V5XSA9IGRlZmF1bHRzW2tleV07XG4gICAgfVxuXG4gICAgaWYgKG1lcmdlZFtrZXldID09PSB1bmRlZmluZWQgfHwgbWVyZ2VkW2tleV0gPT09IG51bGwpIHtcbiAgICAgIG1lcmdlZFtrZXldID0gZGVmYXVsdHNba2V5XTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbWVyZ2VkO1xufTtcblxuLyoqXG4gKiBQcm9taXNlIHZlcnNpb24gb2YgTm9kZSdzIGBleGVjYCBmcm9tIGBjaGlsZC1wcm9jZXNzYC5cbiAqL1xuZXhwb3J0IGNvbnN0IGV4ZWNQcm9taXNlID0gcHJvbWlzaWZ5KGV4ZWMpO1xuIl19
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.osInfo = void 0;
|
|
4
|
+
const os_1 = require("os");
|
|
5
|
+
const helpers_1 = require("./helpers");
|
|
6
|
+
/**
|
|
7
|
+
* Executes `lsb_release -a` command in terminal.
|
|
8
|
+
*
|
|
9
|
+
* ```
|
|
10
|
+
* Distributor ID: Ubuntu
|
|
11
|
+
* Description: Ubuntu 22.04.4 LTS
|
|
12
|
+
* Release: 22.04
|
|
13
|
+
* Codename: jammy
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* Parses os and os-version from the response.
|
|
17
|
+
*/
|
|
18
|
+
const getLinuxInfo = async () => {
|
|
19
|
+
const { stdout } = await (0, helpers_1.execPromise)('lsb_release -a');
|
|
20
|
+
const parseLinuxVersion = (lsbReleaseResponse) => {
|
|
21
|
+
const regex = /Distributor ID: ([^\n]+)\nDescription: +([^ ]+) +([^ ]+) +(.+)\n/;
|
|
22
|
+
const match = lsbReleaseResponse.match(regex);
|
|
23
|
+
return {
|
|
24
|
+
os: match ? match[1] : (0, os_1.platform)(),
|
|
25
|
+
'os-version': match ? `${match[3]} ${match[4]}` : (0, os_1.release)(),
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
return parseLinuxVersion(stdout);
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Executes in CMD `systeminfo | findstr /B /C:"OS Name" /B /C:"OS Version"` command.
|
|
32
|
+
*
|
|
33
|
+
* ```
|
|
34
|
+
* OS Name: Microsoft Windows 11 Enterprise
|
|
35
|
+
* OS Version: 10.0.22631 N/A Build 22631
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* Parses os and os-version from the response.
|
|
39
|
+
*/
|
|
40
|
+
const getWindowsInfo = async () => {
|
|
41
|
+
const { stdout } = await (0, helpers_1.execPromise)('systeminfo | findstr /B /C:"OS Name" /B /C:"OS Version"');
|
|
42
|
+
const parseWindowsInfo = (systemInfoResponse) => {
|
|
43
|
+
const regex = /OS Name:\s+([^\n]+)\nOS Version:\s+([\d.]+)\s+(N\/A\s+Build\s+(\d+))/;
|
|
44
|
+
const match = systemInfoResponse.match(regex);
|
|
45
|
+
return {
|
|
46
|
+
os: match ? match[1] : (0, os_1.platform)(),
|
|
47
|
+
'os-version': match ? `${match[2]} ${match[3]}` : (0, os_1.release)(),
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
return parseWindowsInfo(stdout);
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Executes `sw_vers` command in terminal.
|
|
54
|
+
*
|
|
55
|
+
* ```
|
|
56
|
+
* ProductName: macOS
|
|
57
|
+
* ProductVersion: 14.3.1
|
|
58
|
+
* BuildVersion: 23D60
|
|
59
|
+
* ```
|
|
60
|
+
*
|
|
61
|
+
* Parses os and os version from the response.
|
|
62
|
+
*/
|
|
63
|
+
const getMacVersion = async () => {
|
|
64
|
+
const { stdout } = await (0, helpers_1.execPromise)('sw_vers');
|
|
65
|
+
const parseMacInfo = (swVersResponse) => {
|
|
66
|
+
const productNameRegex = /ProductName:\s*(.+)/;
|
|
67
|
+
const productVersionRegex = /ProductVersion:\s*(.+)/;
|
|
68
|
+
const nameMatch = swVersResponse.match(productNameRegex);
|
|
69
|
+
const versionMatch = swVersResponse.match(productVersionRegex);
|
|
70
|
+
return {
|
|
71
|
+
os: nameMatch ? nameMatch[1].trim() : (0, os_1.platform)(),
|
|
72
|
+
'os-version': versionMatch ? versionMatch[1].trim() : (0, os_1.release)(),
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
return parseMacInfo(stdout);
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Finds operating system information like name and version.
|
|
79
|
+
*/
|
|
80
|
+
const osInfo = async () => {
|
|
81
|
+
const osKind = (0, os_1.platform)();
|
|
82
|
+
switch (osKind) {
|
|
83
|
+
case 'darwin':
|
|
84
|
+
return getMacVersion();
|
|
85
|
+
case 'linux':
|
|
86
|
+
return getLinuxInfo();
|
|
87
|
+
case 'win32':
|
|
88
|
+
return getWindowsInfo();
|
|
89
|
+
default:
|
|
90
|
+
return {
|
|
91
|
+
os: osKind,
|
|
92
|
+
'os-version': (0, os_1.release)(),
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
exports.osInfo = osInfo;
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3MtY2hlY2tlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL29zLWNoZWNrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkJBQXFDO0FBRXJDLHVDQUFzQztBQUV0Qzs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sWUFBWSxHQUFHLEtBQUssSUFBSSxFQUFFO0lBQzlCLE1BQU0sRUFBQyxNQUFNLEVBQUMsR0FBRyxNQUFNLElBQUEscUJBQVcsRUFBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBRXJELE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxrQkFBMEIsRUFBRSxFQUFFO1FBQ3ZELE1BQU0sS0FBSyxHQUNULGtFQUFrRSxDQUFDO1FBQ3JFLE1BQU0sS0FBSyxHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU5QyxPQUFPO1lBQ0wsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFBLGFBQVEsR0FBRTtZQUNqQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBQSxZQUFPLEdBQUU7U0FDNUQsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGLE9BQU8saUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDbkMsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxjQUFjLEdBQUcsS0FBSyxJQUFJLEVBQUU7SUFDaEMsTUFBTSxFQUFDLE1BQU0sRUFBQyxHQUFHLE1BQU0sSUFBQSxxQkFBVyxFQUNoQyx5REFBeUQsQ0FDMUQsQ0FBQztJQUVGLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxrQkFBMEIsRUFBRSxFQUFFO1FBQ3RELE1BQU0sS0FBSyxHQUNULHNFQUFzRSxDQUFDO1FBQ3pFLE1BQU0sS0FBSyxHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU5QyxPQUFPO1lBQ0wsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFBLGFBQVEsR0FBRTtZQUNqQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBQSxZQUFPLEdBQUU7U0FDNUQsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGLE9BQU8sZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDbEMsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sYUFBYSxHQUFHLEtBQUssSUFBSSxFQUFFO0lBQy9CLE1BQU0sRUFBQyxNQUFNLEVBQUMsR0FBRyxNQUFNLElBQUEscUJBQVcsRUFBQyxTQUFTLENBQUMsQ0FBQztJQUU5QyxNQUFNLFlBQVksR0FBRyxDQUFDLGNBQXNCLEVBQUUsRUFBRTtRQUM5QyxNQUFNLGdCQUFnQixHQUFHLHFCQUFxQixDQUFDO1FBQy9DLE1BQU0sbUJBQW1CLEdBQUcsd0JBQXdCLENBQUM7UUFFckQsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sWUFBWSxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUUvRCxPQUFPO1lBQ0wsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFBLGFBQVEsR0FBRTtZQUNoRCxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUEsWUFBTyxHQUFFO1NBQ2hFLENBQUM7SUFDSixDQUFDLENBQUM7SUFFRixPQUFPLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUM5QixDQUFDLENBQUM7QUFFRjs7R0FFRztBQUNJLE1BQU0sTUFBTSxHQUFHLEtBQUssSUFBSSxFQUFFO0lBQy9CLE1BQU0sTUFBTSxHQUFHLElBQUEsYUFBUSxHQUFFLENBQUM7SUFFMUIsUUFBUSxNQUFNLEVBQUU7UUFDZCxLQUFLLFFBQVE7WUFDWCxPQUFPLGFBQWEsRUFBRSxDQUFDO1FBQ3pCLEtBQUssT0FBTztZQUNWLE9BQU8sWUFBWSxFQUFFLENBQUM7UUFDeEIsS0FBSyxPQUFPO1lBQ1YsT0FBTyxjQUFjLEVBQUUsQ0FBQztRQUMxQjtZQUNFLE9BQU87Z0JBQ0wsRUFBRSxFQUFFLE1BQU07Z0JBQ1YsWUFBWSxFQUFFLElBQUEsWUFBTyxHQUFFO2FBQ3hCLENBQUM7S0FDTDtBQUNILENBQUMsQ0FBQztBQWhCVyxRQUFBLE1BQU0sVUFnQmpCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtyZWxlYXNlLCBwbGF0Zm9ybX0gZnJvbSAnb3MnO1xuXG5pbXBvcnQge2V4ZWNQcm9taXNlfSBmcm9tICcuL2hlbHBlcnMnO1xuXG4vKipcbiAqIEV4ZWN1dGVzIGBsc2JfcmVsZWFzZSAtYWAgY29tbWFuZCBpbiB0ZXJtaW5hbC5cbiAqXG4gKiBgYGBcbiAqIERpc3RyaWJ1dG9yIElEOiBVYnVudHVcbiAqIERlc2NyaXB0aW9uOiAgICBVYnVudHUgMjIuMDQuNCBMVFNcbiAqIFJlbGVhc2U6ICAgICAgICAyMi4wNFxuICogQ29kZW5hbWU6ICAgICAgIGphbW15XG4gKiBgYGBcbiAqXG4gKiBQYXJzZXMgb3MgYW5kIG9zLXZlcnNpb24gZnJvbSB0aGUgcmVzcG9uc2UuXG4gKi9cbmNvbnN0IGdldExpbnV4SW5mbyA9IGFzeW5jICgpID0+IHtcbiAgY29uc3Qge3N0ZG91dH0gPSBhd2FpdCBleGVjUHJvbWlzZSgnbHNiX3JlbGVhc2UgLWEnKTtcblxuICBjb25zdCBwYXJzZUxpbnV4VmVyc2lvbiA9IChsc2JSZWxlYXNlUmVzcG9uc2U6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHJlZ2V4ID1cbiAgICAgIC9EaXN0cmlidXRvciBJRDogKFteXFxuXSspXFxuRGVzY3JpcHRpb246ICsoW14gXSspICsoW14gXSspICsoLispXFxuLztcbiAgICBjb25zdCBtYXRjaCA9IGxzYlJlbGVhc2VSZXNwb25zZS5tYXRjaChyZWdleCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgb3M6IG1hdGNoID8gbWF0Y2hbMV0gOiBwbGF0Zm9ybSgpLFxuICAgICAgJ29zLXZlcnNpb24nOiBtYXRjaCA/IGAke21hdGNoWzNdfSAke21hdGNoWzRdfWAgOiByZWxlYXNlKCksXG4gICAgfTtcbiAgfTtcblxuICByZXR1cm4gcGFyc2VMaW51eFZlcnNpb24oc3Rkb3V0KTtcbn07XG5cbi8qKlxuICogRXhlY3V0ZXMgaW4gQ01EIGBzeXN0ZW1pbmZvIHwgZmluZHN0ciAvQiAvQzpcIk9TIE5hbWVcIiAvQiAvQzpcIk9TIFZlcnNpb25cImAgY29tbWFuZC5cbiAqXG4gKiBgYGBcbiAqIE9TIE5hbWU6ICAgICAgICAgICAgICAgICAgIE1pY3Jvc29mdCBXaW5kb3dzIDExIEVudGVycHJpc2VcbiAqIE9TIFZlcnNpb246ICAgICAgICAgICAgICAgIDEwLjAuMjI2MzEgTi9BIEJ1aWxkIDIyNjMxXG4gKiBgYGBcbiAqXG4gKiBQYXJzZXMgb3MgYW5kIG9zLXZlcnNpb24gZnJvbSB0aGUgcmVzcG9uc2UuXG4gKi9cbmNvbnN0IGdldFdpbmRvd3NJbmZvID0gYXN5bmMgKCkgPT4ge1xuICBjb25zdCB7c3Rkb3V0fSA9IGF3YWl0IGV4ZWNQcm9taXNlKFxuICAgICdzeXN0ZW1pbmZvIHwgZmluZHN0ciAvQiAvQzpcIk9TIE5hbWVcIiAvQiAvQzpcIk9TIFZlcnNpb25cIidcbiAgKTtcblxuICBjb25zdCBwYXJzZVdpbmRvd3NJbmZvID0gKHN5c3RlbUluZm9SZXNwb25zZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgcmVnZXggPVxuICAgICAgL09TIE5hbWU6XFxzKyhbXlxcbl0rKVxcbk9TIFZlcnNpb246XFxzKyhbXFxkLl0rKVxccysoTlxcL0FcXHMrQnVpbGRcXHMrKFxcZCspKS87XG4gICAgY29uc3QgbWF0Y2ggPSBzeXN0ZW1JbmZvUmVzcG9uc2UubWF0Y2gocmVnZXgpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG9zOiBtYXRjaCA/IG1hdGNoWzFdIDogcGxhdGZvcm0oKSxcbiAgICAgICdvcy12ZXJzaW9uJzogbWF0Y2ggPyBgJHttYXRjaFsyXX0gJHttYXRjaFszXX1gIDogcmVsZWFzZSgpLFxuICAgIH07XG4gIH07XG5cbiAgcmV0dXJuIHBhcnNlV2luZG93c0luZm8oc3Rkb3V0KTtcbn07XG5cbi8qKlxuICogRXhlY3V0ZXMgYHN3X3ZlcnNgIGNvbW1hbmQgaW4gdGVybWluYWwuXG4gKlxuICogYGBgXG4gKiBQcm9kdWN0TmFtZTogICAgICBtYWNPU1xuICogUHJvZHVjdFZlcnNpb246ICAgMTQuMy4xXG4gKiBCdWlsZFZlcnNpb246ICAgICAyM0Q2MFxuICogYGBgXG4gKlxuICogUGFyc2VzIG9zIGFuZCBvcyB2ZXJzaW9uIGZyb20gdGhlIHJlc3BvbnNlLlxuICovXG5jb25zdCBnZXRNYWNWZXJzaW9uID0gYXN5bmMgKCkgPT4ge1xuICBjb25zdCB7c3Rkb3V0fSA9IGF3YWl0IGV4ZWNQcm9taXNlKCdzd192ZXJzJyk7XG5cbiAgY29uc3QgcGFyc2VNYWNJbmZvID0gKHN3VmVyc1Jlc3BvbnNlOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBwcm9kdWN0TmFtZVJlZ2V4ID0gL1Byb2R1Y3ROYW1lOlxccyooLispLztcbiAgICBjb25zdCBwcm9kdWN0VmVyc2lvblJlZ2V4ID0gL1Byb2R1Y3RWZXJzaW9uOlxccyooLispLztcblxuICAgIGNvbnN0IG5hbWVNYXRjaCA9IHN3VmVyc1Jlc3BvbnNlLm1hdGNoKHByb2R1Y3ROYW1lUmVnZXgpO1xuICAgIGNvbnN0IHZlcnNpb25NYXRjaCA9IHN3VmVyc1Jlc3BvbnNlLm1hdGNoKHByb2R1Y3RWZXJzaW9uUmVnZXgpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG9zOiBuYW1lTWF0Y2ggPyBuYW1lTWF0Y2hbMV0udHJpbSgpIDogcGxhdGZvcm0oKSxcbiAgICAgICdvcy12ZXJzaW9uJzogdmVyc2lvbk1hdGNoID8gdmVyc2lvbk1hdGNoWzFdLnRyaW0oKSA6IHJlbGVhc2UoKSxcbiAgICB9O1xuICB9O1xuXG4gIHJldHVybiBwYXJzZU1hY0luZm8oc3Rkb3V0KTtcbn07XG5cbi8qKlxuICogRmluZHMgb3BlcmF0aW5nIHN5c3RlbSBpbmZvcm1hdGlvbiBsaWtlIG5hbWUgYW5kIHZlcnNpb24uXG4gKi9cbmV4cG9ydCBjb25zdCBvc0luZm8gPSBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IG9zS2luZCA9IHBsYXRmb3JtKCk7XG5cbiAgc3dpdGNoIChvc0tpbmQpIHtcbiAgICBjYXNlICdkYXJ3aW4nOlxuICAgICAgcmV0dXJuIGdldE1hY1ZlcnNpb24oKTtcbiAgICBjYXNlICdsaW51eCc6XG4gICAgICByZXR1cm4gZ2V0TGludXhJbmZvKCk7XG4gICAgY2FzZSAnd2luMzInOlxuICAgICAgcmV0dXJuIGdldFdpbmRvd3NJbmZvKCk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG9zOiBvc0tpbmQsXG4gICAgICAgICdvcy12ZXJzaW9uJzogcmVsZWFzZSgpLFxuICAgICAgfTtcbiAgfVxufTtcbiJdfQ==
|
|
@@ -74,8 +74,58 @@ export declare const manifestSchema: z.ZodObject<{
|
|
|
74
74
|
}>;
|
|
75
75
|
outputs?: string[] | undefined;
|
|
76
76
|
}>;
|
|
77
|
+
execution: z.ZodObject<{
|
|
78
|
+
command: z.ZodString;
|
|
79
|
+
environment: z.ZodObject<{
|
|
80
|
+
'if-version': z.ZodString;
|
|
81
|
+
os: z.ZodString;
|
|
82
|
+
'os-version': z.ZodString;
|
|
83
|
+
'node-version': z.ZodString;
|
|
84
|
+
'date-time': z.ZodString;
|
|
85
|
+
dependencies: z.ZodArray<z.ZodString, "many">;
|
|
86
|
+
}, "strip", z.ZodTypeAny, {
|
|
87
|
+
'if-version': string;
|
|
88
|
+
os: string;
|
|
89
|
+
'os-version': string;
|
|
90
|
+
'node-version': string;
|
|
91
|
+
'date-time': string;
|
|
92
|
+
dependencies: string[];
|
|
93
|
+
}, {
|
|
94
|
+
'if-version': string;
|
|
95
|
+
os: string;
|
|
96
|
+
'os-version': string;
|
|
97
|
+
'node-version': string;
|
|
98
|
+
'date-time': string;
|
|
99
|
+
dependencies: string[];
|
|
100
|
+
}>;
|
|
101
|
+
status: z.ZodString;
|
|
102
|
+
error: z.ZodOptional<z.ZodString>;
|
|
103
|
+
}, "strip", z.ZodTypeAny, {
|
|
104
|
+
status: string;
|
|
105
|
+
command: string;
|
|
106
|
+
environment: {
|
|
107
|
+
'if-version': string;
|
|
108
|
+
os: string;
|
|
109
|
+
'os-version': string;
|
|
110
|
+
'node-version': string;
|
|
111
|
+
'date-time': string;
|
|
112
|
+
dependencies: string[];
|
|
113
|
+
};
|
|
114
|
+
error?: string | undefined;
|
|
115
|
+
}, {
|
|
116
|
+
status: string;
|
|
117
|
+
command: string;
|
|
118
|
+
environment: {
|
|
119
|
+
'if-version': string;
|
|
120
|
+
os: string;
|
|
121
|
+
'os-version': string;
|
|
122
|
+
'node-version': string;
|
|
123
|
+
'date-time': string;
|
|
124
|
+
dependencies: string[];
|
|
125
|
+
};
|
|
126
|
+
error?: string | undefined;
|
|
127
|
+
}>;
|
|
77
128
|
tree: z.ZodRecord<z.ZodString, z.ZodAny>;
|
|
78
|
-
'if-version': z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
79
129
|
}, "strip", z.ZodTypeAny, {
|
|
80
130
|
name: string;
|
|
81
131
|
initialize: {
|
|
@@ -86,6 +136,19 @@ export declare const manifestSchema: z.ZodObject<{
|
|
|
86
136
|
}>;
|
|
87
137
|
outputs?: string[] | undefined;
|
|
88
138
|
};
|
|
139
|
+
execution: {
|
|
140
|
+
status: string;
|
|
141
|
+
command: string;
|
|
142
|
+
environment: {
|
|
143
|
+
'if-version': string;
|
|
144
|
+
os: string;
|
|
145
|
+
'os-version': string;
|
|
146
|
+
'node-version': string;
|
|
147
|
+
'date-time': string;
|
|
148
|
+
dependencies: string[];
|
|
149
|
+
};
|
|
150
|
+
error?: string | undefined;
|
|
151
|
+
};
|
|
89
152
|
tree: Record<string, any>;
|
|
90
153
|
description?: string | null | undefined;
|
|
91
154
|
tags?: {
|
|
@@ -103,7 +166,6 @@ export declare const manifestSchema: z.ZodObject<{
|
|
|
103
166
|
aggregation: "sum" | "none" | "avg";
|
|
104
167
|
unit: string;
|
|
105
168
|
}[] | null | undefined;
|
|
106
|
-
'if-version'?: string | null | undefined;
|
|
107
169
|
}, {
|
|
108
170
|
name: string;
|
|
109
171
|
initialize: {
|
|
@@ -114,6 +176,19 @@ export declare const manifestSchema: z.ZodObject<{
|
|
|
114
176
|
}>;
|
|
115
177
|
outputs?: string[] | undefined;
|
|
116
178
|
};
|
|
179
|
+
execution: {
|
|
180
|
+
status: string;
|
|
181
|
+
command: string;
|
|
182
|
+
environment: {
|
|
183
|
+
'if-version': string;
|
|
184
|
+
os: string;
|
|
185
|
+
'os-version': string;
|
|
186
|
+
'node-version': string;
|
|
187
|
+
'date-time': string;
|
|
188
|
+
dependencies: string[];
|
|
189
|
+
};
|
|
190
|
+
error?: string | undefined;
|
|
191
|
+
};
|
|
117
192
|
tree: Record<string, any>;
|
|
118
193
|
description?: string | null | undefined;
|
|
119
194
|
tags?: {
|
|
@@ -131,7 +206,6 @@ export declare const manifestSchema: z.ZodObject<{
|
|
|
131
206
|
aggregation: "sum" | "none" | "avg";
|
|
132
207
|
unit: string;
|
|
133
208
|
}[] | null | undefined;
|
|
134
|
-
'if-version'?: string | null | undefined;
|
|
135
209
|
}>;
|
|
136
210
|
/**
|
|
137
211
|
* Validates given `manifest` object to match pattern.
|
|
@@ -146,6 +220,19 @@ export declare const validateManifest: (manifest: any) => {
|
|
|
146
220
|
}>;
|
|
147
221
|
outputs?: string[] | undefined;
|
|
148
222
|
};
|
|
223
|
+
execution: {
|
|
224
|
+
status: string;
|
|
225
|
+
command: string;
|
|
226
|
+
environment: {
|
|
227
|
+
'if-version': string;
|
|
228
|
+
os: string;
|
|
229
|
+
'os-version': string;
|
|
230
|
+
'node-version': string;
|
|
231
|
+
'date-time': string;
|
|
232
|
+
dependencies: string[];
|
|
233
|
+
};
|
|
234
|
+
error?: string | undefined;
|
|
235
|
+
};
|
|
149
236
|
tree: Record<string, any>;
|
|
150
237
|
description?: string | null | undefined;
|
|
151
238
|
tags?: {
|
|
@@ -163,7 +250,6 @@ export declare const validateManifest: (manifest: any) => {
|
|
|
163
250
|
aggregation: "sum" | "none" | "avg";
|
|
164
251
|
unit: string;
|
|
165
252
|
}[] | null | undefined;
|
|
166
|
-
'if-version'?: string | null | undefined;
|
|
167
253
|
};
|
|
168
254
|
/**
|
|
169
255
|
* Validates given `object` with given `schema`.
|
|
@@ -44,8 +44,20 @@ exports.manifestSchema = zod_1.z.object({
|
|
|
44
44
|
})),
|
|
45
45
|
outputs: zod_1.z.array(zod_1.z.string()).optional(),
|
|
46
46
|
}),
|
|
47
|
+
execution: zod_1.z.object({
|
|
48
|
+
command: zod_1.z.string(),
|
|
49
|
+
environment: zod_1.z.object({
|
|
50
|
+
'if-version': zod_1.z.string(),
|
|
51
|
+
os: zod_1.z.string(),
|
|
52
|
+
'os-version': zod_1.z.string(),
|
|
53
|
+
'node-version': zod_1.z.string(),
|
|
54
|
+
'date-time': zod_1.z.string(),
|
|
55
|
+
dependencies: zod_1.z.array(zod_1.z.string()),
|
|
56
|
+
}),
|
|
57
|
+
status: zod_1.z.string(),
|
|
58
|
+
error: zod_1.z.string().optional(),
|
|
59
|
+
}),
|
|
47
60
|
tree: zod_1.z.record(zod_1.z.string(), zod_1.z.any()),
|
|
48
|
-
'if-version': zod_1.z.string().optional().nullable(),
|
|
49
61
|
});
|
|
50
62
|
/**
|
|
51
63
|
* Validates given `manifest` object to match pattern.
|
|
@@ -78,4 +90,4 @@ const prettifyErrorMessage = (issues) => {
|
|
|
78
90
|
return `"${fullPath}" parameter is ${message.toLowerCase()}. Error code: ${code}.`;
|
|
79
91
|
});
|
|
80
92
|
};
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC92YWxpZGF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBMkM7QUFFM0MscUNBQWdDO0FBRWhDLHNEQUF5RDtBQUN6RCxvREFBc0Q7QUFFdEQsTUFBTSxFQUFDLHVCQUF1QixFQUFFLG9CQUFvQixFQUFDLEdBQUcsZUFBTSxDQUFDO0FBRS9EOztHQUVHO0FBQ1UsUUFBQSxjQUFjLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNyQyxJQUFJLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNoQixXQUFXLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM3QyxJQUFJLEVBQUUsT0FBQztTQUNKLE1BQU0sQ0FBQztRQUNOLElBQUksRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO1FBQ3RDLFVBQVUsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO1FBQzVDLFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO0tBQzNDLENBQUM7U0FDRCxRQUFRLEVBQUU7U0FDVixRQUFRLEVBQUU7SUFDYixXQUFXLEVBQUUsT0FBQztTQUNYLE1BQU0sQ0FBQztRQUNOLE9BQU8sRUFBRSxPQUFDLENBQUMsS0FBSyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM1QixJQUFJLEVBQUUsT0FBQyxDQUFDLElBQUksQ0FBQyxpQ0FBbUIsQ0FBQztLQUNsQyxDQUFDO1NBQ0QsUUFBUSxFQUFFO1NBQ1YsUUFBUSxFQUFFO0lBQ2IsTUFBTSxFQUFFLE9BQUM7U0FDTixLQUFLLENBQ0osT0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNQ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RUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3BDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDbEMsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzlDLENBQUM7UUFDRixNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXZDLElBQUksSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUNyQixPQUFPLEdBQUcsT0FBTyxDQUFDLFdBQVcsRUFBRSxpQkFBaUIsSUFBSSxHQUFHLENBQUM7U0FDekQ7UUFFRCxPQUFPLElBQUksUUFBUSxrQkFBa0IsT0FBTyxDQUFDLFdBQVcsRUFBRSxpQkFBaUIsSUFBSSxHQUFHLENBQUM7SUFDckYsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1pvZElzc3VlLCBab2RTY2hlbWEsIHp9IGZyb20gJ3pvZCc7XG5cbmltcG9ydCB7RVJST1JTfSBmcm9tICcuL2Vycm9ycyc7XG5cbmltcG9ydCB7QUdHUkVHQVRJT05fTUVUSE9EU30gZnJvbSAnLi4vdHlwZXMvYWdncmVnYXRpb24nO1xuaW1wb3J0IHtBR0dSRUdBVElPTl9UWVBFU30gZnJvbSAnLi4vdHlwZXMvcGFyYW1ldGVycyc7XG5cbmNvbnN0IHtNYW5pZmVzdFZhbGlkYXRpb25FcnJvciwgSW5wdXRWYWxpZGF0aW9uRXJyb3J9ID0gRVJST1JTO1xuXG4vKipcbiAqIFZhbGlkYXRpb24gc2NoZW1hIGZvciBtYW5pZmVzdHMuXG4gKi9cbmV4cG9ydCBjb25zdCBtYW5pZmVzdFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgbmFtZTogei5zdHJpbmcoKSxcbiAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKS5udWxsYWJsZSgpLFxuICB0YWdzOiB6XG4gICAgLm9iamVjdCh7XG4gICAgICBraW5kOiB6LnN0cmluZygpLm9wdGlvbmFsKCkubnVsbGFibGUoKSxcbiAgICAgIGNvbXBsZXhpdHk6IHouc3RyaW5nKCkub3B0aW9uYWwoKS5udWxsYWJsZSgpLFxuICAgICAgY2F0ZWdvcnk6IHouc3RyaW5nKCkub3B0aW9uYWwoKS5udWxsYWJsZSgpLFxuICAgIH0pXG4gICAgLm9wdGlvbmFsKClcbiAgICAubnVsbGFibGUoKSxcbiAgYWdncmVnYXRpb246IHpcbiAgICAub2JqZWN0KHtcbiAgICAgIG1ldHJpY3M6IHouYXJyYXkoei5zdHJpbmcoKSksXG4gICAgICB0eXBlOiB6LmVudW0oQUdHUkVHQVRJT05fTUVUSE9EUyksXG4gICAgfSlcbiAgICAub3B0aW9uYWwoKVxuICAgIC5udWxsYWJsZSgpLFxuICBwYXJhbXM6IHpcbiAgICAuYXJyYXkoXG4gICAgICB6Lm9iamVjdCh7XG4gICAgICAgIG5hbWU6IHouc3RyaW5nKCksXG4gICAgICAgIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLFxuICAgICAgICBhZ2dyZWdhdGlvbjogei5lbnVtKEFHR1JFR0FUSU9OX1RZUEVTKSxcbiAgICAgICAgdW5pdDogei5zdHJpbmcoKSxcbiAgICAgIH0pXG4gICAgKVxuICAgIC5vcHRpb25hbCgpXG4gICAgLm51bGxhYmxlKCksXG4gIGluaXRpYWxpemU6IHoub2JqZWN0KHtcbiAgICBwbHVnaW5zOiB6LnJlY29yZChcbiAgICAgIHouc3RyaW5nKCksXG4gICAgICB6Lm9iamVjdCh7XG4gICAgICAgIHBhdGg6IHouc3RyaW5nKCksXG4gICAgICAgIG1ldGhvZDogei5zdHJpbmcoKSxcbiAgICAgICAgJ2dsb2JhbC1jb25maWcnOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LmFueSgpKS5vcHRpb25hbCgpLFxuICAgICAgfSlcbiAgICApLFxuICAgIG91dHB1dHM6IHouYXJyYXkoei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcbiAgfSksXG4gIGV4ZWN1dGlvbjogei5vYmplY3Qoe1xuICAgIGNvbW1hbmQ6IHouc3RyaW5nKCksXG4gICAgZW52aXJvbm1lbnQ6IHoub2JqZWN0KHtcbiAgICAgICdpZi12ZXJzaW9uJzogei5zdHJpbmcoKSxcbiAgICAgIG9zOiB6LnN0cmluZygpLFxuICAgICAgJ29zLXZlcnNpb24nOiB6LnN0cmluZygpLFxuICAgICAgJ25vZGUtdmVyc2lvbic6IHouc3RyaW5nKCksXG4gICAgICAnZGF0ZS10aW1lJzogei5zdHJpbmcoKSxcbiAgICAgIGRlcGVuZGVuY2llczogei5hcnJheSh6LnN0cmluZygpKSxcbiAgICB9KSxcbiAgICBzdGF0dXM6IHouc3RyaW5nKCksXG4gICAgZXJyb3I6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgfSksXG4gIHRyZWU6IHoucmVjb3JkKHouc3RyaW5nKCksIHouYW55KCkpLFxufSk7XG5cbi8qKlxuICogVmFsaWRhdGVzIGdpdmVuIGBtYW5pZmVzdGAgb2JqZWN0IHRvIG1hdGNoIHBhdHRlcm4uXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZU1hbmlmZXN0ID0gKG1hbmlmZXN0OiBhbnkpID0+XG4gIHZhbGlkYXRlKG1hbmlmZXN0U2NoZW1hLCBtYW5pZmVzdCwgTWFuaWZlc3RWYWxpZGF0aW9uRXJyb3IpO1xuXG4vKipcbiAqIFZhbGlkYXRlcyBnaXZlbiBgb2JqZWN0YCB3aXRoIGdpdmVuIGBzY2hlbWFgLlxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGUgPSA8VD4oXG4gIHNjaGVtYTogWm9kU2NoZW1hPFQ+LFxuICBvYmplY3Q6IGFueSxcbiAgZXJyb3JDb25zdHJ1Y3RvcjogRXJyb3JDb25zdHJ1Y3RvciA9IElucHV0VmFsaWRhdGlvbkVycm9yXG4pID0+IHtcbiAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IHNjaGVtYS5zYWZlUGFyc2Uob2JqZWN0KTtcblxuICBpZiAoIXZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xuICAgIHRocm93IG5ldyBlcnJvckNvbnN0cnVjdG9yKFxuICAgICAgcHJldHRpZnlFcnJvck1lc3NhZ2UodmFsaWRhdGlvblJlc3VsdC5lcnJvci5tZXNzYWdlKVxuICAgICk7XG4gIH1cblxuICByZXR1cm4gdmFsaWRhdGlvblJlc3VsdC5kYXRhO1xufTtcblxuLyoqXG4gKiBCZWF1dGlmeSBlcnJvciBtZXNzYWdlIGZyb20gem9kIGlzc3VlLlxuICovXG5jb25zdCBwcmV0dGlmeUVycm9yTWVzc2FnZSA9IChpc3N1ZXM6IHN0cmluZykgPT4ge1xuICBjb25zdCBpc3N1ZXNBcnJheSA9IEpTT04ucGFyc2UoaXNzdWVzKTtcblxuICByZXR1cm4gaXNzdWVzQXJyYXkubWFwKChpc3N1ZTogWm9kSXNzdWUpID0+IHtcbiAgICBjb25zdCB7Y29kZSwgcGF0aCwgbWVzc2FnZX0gPSBpc3N1ZTtcbiAgICBjb25zdCBmbGF0dGVuUGF0aCA9IHBhdGgubWFwKHBhcnQgPT5cbiAgICAgIHR5cGVvZiBwYXJ0ID09PSAnbnVtYmVyJyA/IGBbJHtwYXJ0fV1gIDogcGFydFxuICAgICk7XG4gICAgY29uc3QgZnVsbFBhdGggPSBmbGF0dGVuUGF0aC5qb2luKCcuJyk7XG5cbiAgICBpZiAoY29kZSA9PT0gJ2N1c3RvbScpIHtcbiAgICAgIHJldHVybiBgJHttZXNzYWdlLnRvTG93ZXJDYXNlKCl9LiBFcnJvciBjb2RlOiAke2NvZGV9LmA7XG4gICAgfVxuXG4gICAgcmV0dXJuIGBcIiR7ZnVsbFBhdGh9XCIgcGFyYW1ldGVyIGlzICR7bWVzc2FnZS50b0xvd2VyQ2FzZSgpfS4gRXJyb3IgY29kZTogJHtjb2RlfS5gO1xuICB9KTtcbn07XG4iXX0=
|
package/github-processes.md
CHANGED
|
@@ -66,6 +66,16 @@ Here are the rules applied to each branch:
|
|
|
66
66
|
- On `main` we can be slightly more flexible. It is acceptable to skip QA for PRs that only change typos, documentation or comments. Any changes to source code or tests should be QA approved before merge.
|
|
67
67
|
- In emergency scenarios where an urgent hotfix is required it might be required to skip QA review on `main` branches - this should only happen with QA authorization so QA can retroactively test as soon as possible.
|
|
68
68
|
|
|
69
|
+
### How to create a release
|
|
70
|
+
|
|
71
|
+
Creating a release of `if`, `if-plugins` or `if-unofficial-plugins` is achieved by following these steps:
|
|
72
|
+
|
|
73
|
+
1) core team member creates a tagged release on `main`
|
|
74
|
+
2) new tagged release triggers automatic commit to be pushed to `main` that updates package and lock files that include new version numbers
|
|
75
|
+
3) `main` branch is manually merged into `release` by core team member
|
|
76
|
+
4) merging into release triggers automatic new release to be created on npm
|
|
77
|
+
|
|
78
|
+
We use [semantic versioning](https://semver.org/) to number our releases.
|
|
69
79
|
## DCO
|
|
70
80
|
|
|
71
81
|
We require contributors to conform to the DCO agreement on our repositories. This means either signing commits or explicitly adding a DCO commit message. This ensures all contributors agree to the conditions imposed by our licenses and adhere to our expected practices. The DCO must be satisfied in order to PRs to be merged.
|
package/{examples/manifests/pipeline-demo-2.yml → manifests/bugs/aggregation-error-wrong-metric.yml}
RENAMED
|
@@ -1,15 +1,10 @@
|
|
|
1
|
-
name:
|
|
2
|
-
description:
|
|
1
|
+
name: aggregation-error-wrong-metric
|
|
2
|
+
description: a negative test case that fails due to the aggregation feature being passed an incorrect metric
|
|
3
3
|
tags:
|
|
4
4
|
aggregation:
|
|
5
5
|
metrics:
|
|
6
|
-
- "
|
|
6
|
+
- "dummy-param"
|
|
7
7
|
type: "both"
|
|
8
|
-
params:
|
|
9
|
-
- name: carbon-plus-energy
|
|
10
|
-
description: "sum of energies"
|
|
11
|
-
unit: "kWh"
|
|
12
|
-
aggregation: sum
|
|
13
8
|
initialize:
|
|
14
9
|
plugins:
|
|
15
10
|
"teads-curve":
|
|
@@ -17,14 +12,9 @@ initialize:
|
|
|
17
12
|
method: TeadsCurve
|
|
18
13
|
global-config:
|
|
19
14
|
interpolation: spline
|
|
20
|
-
"
|
|
15
|
+
"sci-e":
|
|
21
16
|
path: "@grnsft/if-plugins"
|
|
22
|
-
method:
|
|
23
|
-
global-config:
|
|
24
|
-
input-parameters:
|
|
25
|
-
- cpu/energy
|
|
26
|
-
- network/energy
|
|
27
|
-
output-parameter: carbon-plus-energy
|
|
17
|
+
method: SciE
|
|
28
18
|
"sci-m":
|
|
29
19
|
path: "@grnsft/if-plugins"
|
|
30
20
|
method: SciM
|
|
@@ -53,7 +43,7 @@ tree:
|
|
|
53
43
|
child-1:
|
|
54
44
|
pipeline:
|
|
55
45
|
- teads-curve
|
|
56
|
-
-
|
|
46
|
+
- sci-e
|
|
57
47
|
- sci-m
|
|
58
48
|
- sci-o
|
|
59
49
|
- time-sync
|
|
@@ -78,33 +68,25 @@ tree:
|
|
|
78
68
|
cloud/region: uk-west
|
|
79
69
|
duration: 1
|
|
80
70
|
cpu/utilization: 10
|
|
81
|
-
network/energy: 10
|
|
82
|
-
energy: 5
|
|
83
71
|
- timestamp: "2023-12-12T00:00:01.000Z"
|
|
84
72
|
duration: 5
|
|
85
73
|
cpu/utilization: 20
|
|
86
74
|
cloud/instance-type: A1
|
|
87
75
|
cloud/region: uk-west
|
|
88
|
-
network/energy: 10
|
|
89
|
-
energy: 5
|
|
90
76
|
- timestamp: "2023-12-12T00:00:06.000Z"
|
|
91
77
|
duration: 7
|
|
92
78
|
cpu/utilization: 15
|
|
93
79
|
cloud/instance-type: A1
|
|
94
80
|
cloud/region: uk-west
|
|
95
|
-
network/energy: 10
|
|
96
|
-
energy: 5
|
|
97
81
|
- timestamp: "2023-12-12T00:00:13.000Z"
|
|
98
82
|
duration: 30
|
|
99
83
|
cloud/instance-type: A1
|
|
100
84
|
cloud/region: uk-west
|
|
101
85
|
cpu/utilization: 15
|
|
102
|
-
network/energy: 10
|
|
103
|
-
energy: 5
|
|
104
86
|
child-2:
|
|
105
87
|
pipeline:
|
|
106
88
|
- teads-curve
|
|
107
|
-
-
|
|
89
|
+
- sci-e
|
|
108
90
|
- sci-m
|
|
109
91
|
- sci-o
|
|
110
92
|
- time-sync
|
|
@@ -113,7 +95,7 @@ tree:
|
|
|
113
95
|
group-by:
|
|
114
96
|
group:
|
|
115
97
|
- cloud/region
|
|
116
|
-
- instance-type
|
|
98
|
+
- cloud/instance-type
|
|
117
99
|
defaults:
|
|
118
100
|
cpu/thermal-design-power: 100
|
|
119
101
|
grid/carbon-intensity: 800
|
|
@@ -129,26 +111,18 @@ tree:
|
|
|
129
111
|
cpu/utilization: 30
|
|
130
112
|
cloud/instance-type: A1
|
|
131
113
|
cloud/region: uk-west
|
|
132
|
-
network/energy: 10
|
|
133
|
-
energy: 5
|
|
134
114
|
- timestamp: "2023-12-12T00:00:01.000Z"
|
|
135
115
|
duration: 5
|
|
136
116
|
cpu/utilization: 28
|
|
137
117
|
cloud/instance-type: A1
|
|
138
118
|
cloud/region: uk-west
|
|
139
|
-
network/energy: 10
|
|
140
|
-
energy: 5
|
|
141
119
|
- timestamp: "2023-12-12T00:00:06.000Z"
|
|
142
120
|
duration: 7
|
|
143
121
|
cpu/utilization: 40
|
|
144
122
|
cloud/instance-type: A1
|
|
145
123
|
cloud/region: uk-west
|
|
146
|
-
network/energy: 10
|
|
147
|
-
energy: 5
|
|
148
124
|
- timestamp: "2023-12-12T00:00:13.000Z"
|
|
149
125
|
duration: 30
|
|
150
126
|
cpu/utilization: 33
|
|
151
127
|
cloud/instance-type: A1
|
|
152
128
|
cloud/region: uk-west
|
|
153
|
-
network/energy: 10
|
|
154
|
-
energy: 5
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
name: pipeline-demo
|
|
2
|
+
description: https://github.com/Green-Software-Foundation/if-unofficial-plugins/issues/81
|
|
3
|
+
tags:
|
|
4
|
+
# aggregation:
|
|
5
|
+
# metrics:
|
|
6
|
+
# - "carbon"
|
|
7
|
+
# - "energy"
|
|
8
|
+
#type: "both"
|
|
9
|
+
initialize:
|
|
10
|
+
outputs:
|
|
11
|
+
- yaml
|
|
12
|
+
# - csv
|
|
13
|
+
plugins:
|
|
14
|
+
"azure-importer":
|
|
15
|
+
method: AzureImporter
|
|
16
|
+
path: "@grnsft/if-unofficial-plugins"
|
|
17
|
+
"try-defaults-1":
|
|
18
|
+
path: "@grnsft/if-plugins"
|
|
19
|
+
method: Coefficient
|
|
20
|
+
global-config:
|
|
21
|
+
input-parameter: grid/carbon-intensity
|
|
22
|
+
coefficient: 0.1
|
|
23
|
+
output-parameter: grid/carbon-intensity
|
|
24
|
+
"try-defaults-2":
|
|
25
|
+
path: "@grnsft/if-plugins"
|
|
26
|
+
method: Coefficient
|
|
27
|
+
global-config:
|
|
28
|
+
input-parameter: network/energy
|
|
29
|
+
coefficient: 1000
|
|
30
|
+
output-parameter: network/energy
|
|
31
|
+
"sci-o":
|
|
32
|
+
method: SciO
|
|
33
|
+
path: "@grnsft/if-plugins"
|
|
34
|
+
"group-by":
|
|
35
|
+
path: "builtin"
|
|
36
|
+
method: GroupBy
|
|
37
|
+
tree:
|
|
38
|
+
children:
|
|
39
|
+
web-front: # name this according to the sub-system, e.g. portal, APIs/backend, DB
|
|
40
|
+
pipeline:
|
|
41
|
+
- azure-importer
|
|
42
|
+
#- try-defaults-1
|
|
43
|
+
#- try-defaults-2
|
|
44
|
+
- sci-o
|
|
45
|
+
config:
|
|
46
|
+
group-by:
|
|
47
|
+
group:
|
|
48
|
+
- instance-type
|
|
49
|
+
azure-importer:
|
|
50
|
+
azure-observation-window: 60 min
|
|
51
|
+
azure-observation-aggregation: "average"
|
|
52
|
+
azure-subscription-id: 30b6e171-af2c-4fe6-b00d-d4c70f6291fe
|
|
53
|
+
azure-resource-group: gcf-app_group
|
|
54
|
+
azure-vm-name: gcf-app
|
|
55
|
+
defaults:
|
|
56
|
+
grid/carbon-intensity: 800 # adjust for SG grid
|
|
57
|
+
network/energy: 0.001 # review for naming accuracy
|
|
58
|
+
inputs:
|
|
59
|
+
- timestamp: "2024-04-04T08:00:00.001Z"
|
|
60
|
+
duration: 3600
|
|
61
|
+
energy: 100
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
name: pipeline-demo
|
|
2
|
+
description: https://github.com/Green-Software-Foundation/if-unofficial-plugins/issues/81
|
|
3
|
+
tags: null
|
|
4
|
+
initialize:
|
|
5
|
+
plugins:
|
|
6
|
+
azure-importer:
|
|
7
|
+
path: '@grnsft/if-unofficial-plugins'
|
|
8
|
+
method: AzureImporter
|
|
9
|
+
try-defaults-1:
|
|
10
|
+
path: '@grnsft/if-plugins'
|
|
11
|
+
method: Coefficient
|
|
12
|
+
global-config:
|
|
13
|
+
input-parameter: grid/carbon-intensity
|
|
14
|
+
coefficient: 0.1
|
|
15
|
+
output-parameter: grid/carbon-intensity
|
|
16
|
+
try-defaults-2:
|
|
17
|
+
path: '@grnsft/if-plugins'
|
|
18
|
+
method: Coefficient
|
|
19
|
+
global-config:
|
|
20
|
+
input-parameter: network/energy
|
|
21
|
+
coefficient: 1000
|
|
22
|
+
output-parameter: network/energy
|
|
23
|
+
sci-o:
|
|
24
|
+
path: '@grnsft/if-plugins'
|
|
25
|
+
method: SciO
|
|
26
|
+
group-by:
|
|
27
|
+
path: builtin
|
|
28
|
+
method: GroupBy
|
|
29
|
+
outputs:
|
|
30
|
+
- yaml
|
|
31
|
+
if-version: v0.3.2
|
|
32
|
+
tree:
|
|
33
|
+
children:
|
|
34
|
+
web-front:
|
|
35
|
+
pipeline:
|
|
36
|
+
- azure-importer
|
|
37
|
+
- try-defaults-1
|
|
38
|
+
- try-defaults-2
|
|
39
|
+
config:
|
|
40
|
+
group-by:
|
|
41
|
+
group:
|
|
42
|
+
- instance-type
|
|
43
|
+
azure-importer:
|
|
44
|
+
azure-observation-window: 60 min
|
|
45
|
+
azure-observation-aggregation: average
|
|
46
|
+
azure-subscription-id: 30b6e171-af2c-4fe6-b00d-d4c70f6291fe
|
|
47
|
+
azure-resource-group: gcf-app_group
|
|
48
|
+
azure-vm-name: gcf-app
|
|
49
|
+
defaults:
|
|
50
|
+
grid/carbon-intensity: 800
|
|
51
|
+
network/energy: 0.001
|
|
52
|
+
inputs:
|
|
53
|
+
- timestamp: '2024-04-04T08:00:00.001Z'
|
|
54
|
+
duration: 3600
|
|
55
|
+
energy: 100
|
|
56
|
+
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
name: initialize-error-no-config
|
|
2
|
+
description: a negative test case that fails due to plugin initialization missing some required config
|
|
3
|
+
tags:
|
|
4
|
+
initialize:
|
|
5
|
+
plugins:
|
|
6
|
+
teads-curve:
|
|
7
|
+
path: '@grnsft/if-unofficial-plugins'
|
|
8
|
+
method: TeadsCurve
|
|
9
|
+
global-config:
|
|
10
|
+
outputs: ['yaml']
|
|
11
|
+
tree:
|
|
12
|
+
children:
|
|
13
|
+
child-0:
|
|
14
|
+
defaults:
|
|
15
|
+
cpu/thermal-design-power: 100
|
|
16
|
+
pipeline:
|
|
17
|
+
- teads-curve
|
|
18
|
+
inputs:
|
|
19
|
+
- timestamp: 2023-07-06T00:00
|
|
20
|
+
duration: 1
|
|
21
|
+
cpu/utilization: 20
|
|
22
|
+
- timestamp: 2023-07-06T00:01
|
|
23
|
+
duration: 1
|
|
24
|
+
cpu/utilization: 80
|
|
25
|
+
- timestamp: 2023-07-06T00:02
|
|
26
|
+
duration: 1
|
|
27
|
+
cpu/utilization: 20
|