Skip to content

Commit 56cece1

Browse files
committed
ci: generate build summary
Signed-off-by: Yi Huang <[email protected]>
1 parent 924ace7 commit 56cece1

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

Diff for: .github/workflows/build.yml

+46
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,49 @@ jobs:
3434
plugins: ${{ toJSON(matrix.plugins) }}
3535
version: ${{ needs.get-versions.outputs.version }}
3636
secrets: inherit
37+
38+
check-artifacts:
39+
needs:
40+
- get-versions
41+
- parse-plugins
42+
- linux
43+
runs-on: ubuntu-latest
44+
steps:
45+
- uses: actions/checkout@v4
46+
- uses: actions/github-script@v7
47+
with:
48+
script: |
49+
const fs = require("fs");
50+
const raw = JSON.parse(fs.readFileSync(".github/plugins.json"));
51+
52+
core.summary.addHeading('Build Summary');
53+
54+
let table = [
55+
[{data: 'plugin/platform', header: true}],
56+
];
57+
let platforms = [];
58+
Object.entries(raw.platforms).forEach(([key, platform]) => {
59+
table[0].push({data: key, header: true});
60+
platforms.push(platform.asset_tag);
61+
});
62+
63+
let artifacts = await github
64+
.paginate(github.rest.actions.listWorkflowRunArtifacts, {
65+
owner: context.repo.owner,
66+
repo: context.repo.repo,
67+
run_id: context.runId,
68+
});
69+
70+
Object.keys(raw.plugins).forEach((plugin) => {
71+
let row = [{data: plugin, header: true}];
72+
let filtered = artifacts.filter((artifact) => artifact.name.includes(plugin));
73+
platforms.forEach((tag) => {
74+
row.push({
75+
data: filtered.some((artifact) => artifact.name.includes(tag)) ? ':ok:' : ':x:'
76+
});
77+
});
78+
table.push(row);
79+
});
80+
81+
core.summary.addTable(table);
82+
core.summary.write()

0 commit comments

Comments
 (0)