Skip to content

Commit a33b4fc

Browse files
committed
add run-command and run-build modules
1 parent 9ca2510 commit a33b4fc

19 files changed

Lines changed: 715 additions & 82 deletions

.npmrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
registry=https://registry.npmjs.org/
1+
registry=https://registry.npmjs.org/

package-lock.json

Lines changed: 79 additions & 65 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
"package": "ncc build --minify",
1515
"test": "jest",
1616
"all": "npm test && npm run build && npm run package",
17-
"ci": "npm run clean && npm run deps && npm ci && npm run all"
17+
"ci": "npm run clean && npm ci && npm run deps && npm run all"
1818
},
1919
"files": [
2020
"lib/",
@@ -23,7 +23,8 @@
2323
],
2424
"dependencies": {
2525
"@actions/core": "^1.11.1",
26-
"@actions/exec": "^1.1.1"
26+
"@actions/exec": "^1.1.1",
27+
"uuid": "^11.1.0"
2728
},
2829
"devDependencies": {
2930
"@types/jest": "^30.0.0",
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
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
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
classdef GitHubLogBuildRunnerPlugin < matlab.buildtool.plugins.BuildRunnerPlugin
2+
3+
% Copyright 2024 The MathWorks, Inc.
4+
5+
methods (Access=protected)
6+
7+
function runTask(plugin, pluginData)
8+
% Add Github workflow command for grouping the tasks
9+
disp("::group::" + pluginData.TaskResults.Name);
10+
11+
runTask@matlab.buildtool.plugins.BuildRunnerPlugin(plugin, pluginData);
12+
13+
% Add Github workflow command ::error:: if the task is failed
14+
if pluginData.TaskResults.Failed
15+
disp("::error::" + pluginData.TaskResults.Name + " task failed");
16+
end
17+
18+
% Complete the group command
19+
disp("::endgroup::");
20+
end
21+
end
22+
end

0 commit comments

Comments
 (0)