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