-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathBuildSummaryPlugin.m
More file actions
47 lines (38 loc) · 1.8 KB
/
Copy pathBuildSummaryPlugin.m
File metadata and controls
47 lines (38 loc) · 1.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
classdef BuildSummaryPlugin < matlab.buildtool.plugins.BuildRunnerPlugin
% Copyright 2024 The MathWorks, Inc.
properties (Access=private)
TaskDetails = {};
end
methods (Access=protected)
function runTaskGraph(plugin, pluginData)
runTaskGraph@matlab.buildtool.plugins.BuildRunnerPlugin(plugin, pluginData);
[fID, msg] = fopen(fullfile(getenv("RUNNER_TEMP") ,"buildSummary" + getenv("GITHUB_RUN_ID") + ".json"), "w");
if fID == -1
warning("ciplugins:github:BuildSummaryPlugin:UnableToOpenFile","Unable to open a file required to create the MATLAB build summary table: %s", msg);
else
closeFile = onCleanup(@()fclose(fID));
s = jsonencode(plugin.TaskDetails);
fprintf(fID, "%s",s);
end
end
function runTask(plugin, pluginData)
runTask@matlab.buildtool.plugins.BuildRunnerPlugin(plugin, pluginData);
taskDetail = getCommonTaskDetail(pluginData);
plugin.TaskDetails = [plugin.TaskDetails, taskDetail];
end
function skipTask(plugin, pluginData)
skipTask@matlab.buildtool.plugins.BuildRunnerPlugin(plugin, pluginData);
taskDetail = getCommonTaskDetail(pluginData);
taskDetail.skipReason = pluginData.SkipReason;
plugin.TaskDetails = [plugin.TaskDetails, taskDetail];
end
end
end
function taskDetail = getCommonTaskDetail(pluginData)
taskDetail = struct();
taskDetail.name = pluginData.TaskResults.Name;
taskDetail.description = pluginData.TaskGraph.Tasks.Description;
taskDetail.failed = pluginData.TaskResults.Failed;
taskDetail.skipped = pluginData.TaskResults.Skipped;
taskDetail.duration = string(pluginData.TaskResults.Duration);
end