From c4a6b699d7fa85e42dbf4ef14f6da1c03b3291b5 Mon Sep 17 00:00:00 2001 From: jpaul Date: Tue, 28 Nov 2023 11:30:03 +0100 Subject: [PATCH] add mermaid diagramm creation for history metric --- dist/cleanup/index.js | 36 +++++++++++++++++++++++++++++++----- dist/main/index.js | 36 +++++++++++++++++++++++++++++++----- src/features/reports.ts | 40 +++++++++++++++++++++++++++++++++++----- 3 files changed, 97 insertions(+), 15 deletions(-) diff --git a/dist/cleanup/index.js b/dist/cleanup/index.js index 34e1934..195c9aa 100644 --- a/dist/cleanup/index.js +++ b/dist/cleanup/index.js @@ -81872,16 +81872,15 @@ function generateReports() { // core.info("pushEvents: " + pushEvents[0].created_at) for (let i = 0; i < pushEvents.length; i++) { // timestamps.push(pushEvents[i].created_at) - core.info("------------------------------------"); - core.info(pushEvents[i].created_at); shas.push(pushEvents[i].payload.commits[pushEvents[i].payload.commits.length - 1].sha); } + const imageData = yield (0, utils_1.getImageData)(shas); + const prComment = createHistoryDiagramm(shas, imageData); + core.info(prComment); + yield (0, utils_1.createPRComment)(prComment); // Extract data for plotting // const commitDates = formatTimestamps(timestamps) - const imageData = yield (0, utils_1.getImageData)(shas); // core.info(String(commitDates)) - core.info(String(shas)); - core.info(JSON.stringify(imageData)); } if (arePRBaseComparisonEnabled()) { const prMetrics = JSON.parse(yield (0, utils_1.getPrBaseBranchMetrics)()); @@ -81968,6 +81967,33 @@ gantt Report generated by setup-graalvm.`; } +function createHistoryDiagramm(shas, metricDataList) { + let mermaidDiagramm = `## GraalVM Native Image PR comparison + +#### Image Details + +\`\`\`mermaid +gantt + title Native Image Size Details + todayMarker off + dateFormat X + axisFormat % + +`; + for (let i = 0; i < metricDataList.length; i++) { + mermaidDiagramm = mermaidDiagramm + ` + section ${shas[i]} + Total ${bytesToHuman(metricDataList[i].image_details.total_bytes)}: ${shas[i] === process.env.GITHUB_SHA ? 'active' : ''} 0, ${metricDataList[i].image_details.total_bytes} + + `; + } + mermaidDiagramm = mermaidDiagramm + ` + +\`\`\` + +Report generated by setup-graalvm.`; + return mermaidDiagramm; +} function createReport(data) { const context = github.context; const info = data.general_info; diff --git a/dist/main/index.js b/dist/main/index.js index 27643de..054f226 100644 --- a/dist/main/index.js +++ b/dist/main/index.js @@ -81971,16 +81971,15 @@ function generateReports() { // core.info("pushEvents: " + pushEvents[0].created_at) for (let i = 0; i < pushEvents.length; i++) { // timestamps.push(pushEvents[i].created_at) - core.info("------------------------------------"); - core.info(pushEvents[i].created_at); shas.push(pushEvents[i].payload.commits[pushEvents[i].payload.commits.length - 1].sha); } + const imageData = yield (0, utils_1.getImageData)(shas); + const prComment = createHistoryDiagramm(shas, imageData); + core.info(prComment); + yield (0, utils_1.createPRComment)(prComment); // Extract data for plotting // const commitDates = formatTimestamps(timestamps) - const imageData = yield (0, utils_1.getImageData)(shas); // core.info(String(commitDates)) - core.info(String(shas)); - core.info(JSON.stringify(imageData)); } if (arePRBaseComparisonEnabled()) { const prMetrics = JSON.parse(yield (0, utils_1.getPrBaseBranchMetrics)()); @@ -82067,6 +82066,33 @@ gantt Report generated by setup-graalvm.`; } +function createHistoryDiagramm(shas, metricDataList) { + let mermaidDiagramm = `## GraalVM Native Image PR comparison + +#### Image Details + +\`\`\`mermaid +gantt + title Native Image Size Details + todayMarker off + dateFormat X + axisFormat % + +`; + for (let i = 0; i < metricDataList.length; i++) { + mermaidDiagramm = mermaidDiagramm + ` + section ${shas[i]} + Total ${bytesToHuman(metricDataList[i].image_details.total_bytes)}: ${shas[i] === process.env.GITHUB_SHA ? 'active' : ''} 0, ${metricDataList[i].image_details.total_bytes} + + `; + } + mermaidDiagramm = mermaidDiagramm + ` + +\`\`\` + +Report generated by setup-graalvm.`; + return mermaidDiagramm; +} function createReport(data) { const context = github.context; const info = data.general_info; diff --git a/src/features/reports.ts b/src/features/reports.ts index 427cb6c..dacaf0f 100644 --- a/src/features/reports.ts +++ b/src/features/reports.ts @@ -157,17 +157,18 @@ export async function generateReports(): Promise { // core.info("pushEvents: " + pushEvents[0].created_at) for (let i=0; i < pushEvents.length; i++) { // timestamps.push(pushEvents[i].created_at) - core.info("------------------------------------") - core.info(pushEvents[i].created_at) shas.push(pushEvents[i].payload.commits[pushEvents[i].payload.commits.length - 1].sha) + } + const imageData = await getImageData(shas) + const prComment = createHistoryDiagramm(shas, imageData) + core.info(prComment) + await createPRComment(prComment) // Extract data for plotting // const commitDates = formatTimestamps(timestamps) - const imageData = await getImageData(shas) // core.info(String(commitDates)) - core.info(String(shas)) - core.info(JSON.stringify(imageData)) + } @@ -269,6 +270,35 @@ gantt Report generated by setup-graalvm.` } +function createHistoryDiagramm(shas: String[], metricDataList: any[]): string { + + let mermaidDiagramm = `## GraalVM Native Image PR comparison + +#### Image Details + +\`\`\`mermaid +gantt + title Native Image Size Details + todayMarker off + dateFormat X + axisFormat % + +` + for (let i=0; iReport generated by setup-graalvm.` + return mermaidDiagramm +} + function createReport(data: BuildOutput): string { const context = github.context const info = data.general_info