Skip to content

Commit

Permalink
Merge pull request #1 from vezenovm/mv/multiple-circuits-report
Browse files Browse the repository at this point in the history
fix: Just use first circuit report in gates diff test
  • Loading branch information
TomAFrench committed Apr 5, 2024
2 parents e7cf131 + 2b14d43 commit 8658815
Show file tree
Hide file tree
Showing 5 changed files with 51 additions and 17 deletions.
17 changes: 12 additions & 5 deletions dist/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -388,12 +388,15 @@ function run() {
const compareContent = fs.readFileSync(localReportPath, "utf8");
referenceContent !== null && referenceContent !== void 0 ? referenceContent : (referenceContent = compareContent); // if no source gas reports were loaded, defaults to the current gas reports
core.info(`Mapping reference gas reports`);
const referenceReports = (0, report_1.loadReports)(referenceContent);
core.info(`Using old workspace report`);
const referenceReports = (0, report_1.loadOldReport)(referenceContent);
core.info(`Mapping compared gas reports`);
const compareReports = (0, report_1.loadReports)(compareContent);
core.endGroup();
core.startGroup("Compute gas diff");
const diffRows = (0, report_1.computeProgramDiffs)(referenceReports.programs, compareReports.programs);
core.info(`reference reports len: ${referenceReports.programs.length}`);
core.info(`compare reports len: ${compareReports.programs[0].functions}`);
const diffRows = (0, report_1.computeProgramDiffs)(referenceReports.programs, compareReports.programs[0].functions);
core.info(`Format markdown of ${diffRows.length} diffs`);
const markdown = (0, program_1.formatMarkdownDiff)(header, diffRows, repository, github_1.context.sha, refCommitHash, summaryQuantile);
core.info(`Format shell of ${diffRows.length} diffs`);
Expand Down Expand Up @@ -435,7 +438,7 @@ run();
"use strict";

Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.computeContractDiffs = exports.computeProgramDiffs = exports.computedWorkspaceDiff = exports.loadReports = exports.variation = void 0;
exports.computeContractDiffs = exports.computeProgramDiffs = exports.computedWorkspaceDiff = exports.loadReports = exports.loadOldReport = exports.variation = void 0;
const variation = (current, previous) => {
const delta = current - previous;
return {
Expand All @@ -446,12 +449,16 @@ const variation = (current, previous) => {
};
};
exports.variation = variation;
const loadOldReport = (content) => {
return JSON.parse(content);
};
exports.loadOldReport = loadOldReport;
const loadReports = (content) => {
return JSON.parse(content);
};
exports.loadReports = loadReports;
const computedWorkspaceDiff = (sourceReport, compareReport) => ({
programs: (0, exports.computeProgramDiffs)(sourceReport.programs, compareReport.programs),
programs: (0, exports.computeProgramDiffs)(sourceReport.programs[0].functions, compareReport.programs[0].functions),
contracts: (0, exports.computeContractDiffs)(sourceReport.contracts, compareReport.contracts),
});
exports.computedWorkspaceDiff = computedWorkspaceDiff;
Expand Down Expand Up @@ -499,7 +506,7 @@ const computeContractDiffs = (sourceReports, compareReports) => {
};
exports.computeContractDiffs = computeContractDiffs;
const computeContractDiff = (sourceReport, compareReport) => {
const functionDiffs = (0, exports.computeProgramDiffs)(sourceReport.functions, compareReport.functions);
const functionDiffs = (0, exports.computeProgramDiffs)(sourceReport.functions[0].functions, compareReport.functions[0].functions);
return {
name: sourceReport.name,
functions: functionDiffs,
Expand Down
2 changes: 1 addition & 1 deletion dist/index.js.map

Large diffs are not rendered by default.

12 changes: 9 additions & 3 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import * as core from "@actions/core";
import { context, getOctokit } from "@actions/github";

import { formatMarkdownDiff, formatShellDiff } from "./format/program";
import { loadReports, computeProgramDiffs } from "./report";
import { loadReports, computeProgramDiffs, loadOldReport } from "./report";

// import { isSortCriteriaValid, isSortOrdersValid } from "./types";

Expand Down Expand Up @@ -107,13 +107,19 @@ async function run() {
referenceContent ??= compareContent; // if no source gas reports were loaded, defaults to the current gas reports

core.info(`Mapping reference gas reports`);
const referenceReports = loadReports(referenceContent);
core.info(`Using old workspace report`);
const referenceReports = loadOldReport(referenceContent);
core.info(`Mapping compared gas reports`);
const compareReports = loadReports(compareContent);
core.endGroup();

core.startGroup("Compute gas diff");
const diffRows = computeProgramDiffs(referenceReports.programs, compareReports.programs);
core.info(`reference reports len: ${referenceReports.programs.length}`);
core.info(`compare reports len: ${compareReports.programs[0].functions}`);
const diffRows = computeProgramDiffs(
referenceReports.programs,
compareReports.programs[0].functions
);
core.info(`Format markdown of ${diffRows.length} diffs`);
const markdown = formatMarkdownDiff(
header,
Expand Down
25 changes: 18 additions & 7 deletions src/report.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@ import {
ContractDiffReport,
ContractReport,
DiffProgram,
ProgramReport,
CircuitReport,
WorkspaceDiffReport,
WorkspaceReport,
OldWorkspaceReport,
} from "./types";

export const variation = (current: number, previous: number) => {
Expand All @@ -20,6 +21,10 @@ export const variation = (current: number, previous: number) => {
};
};

export const loadOldReport = (content: string): OldWorkspaceReport => {
return JSON.parse(content);
};

export const loadReports = (content: string): WorkspaceReport => {
return JSON.parse(content);
};
Expand All @@ -28,13 +33,16 @@ export const computedWorkspaceDiff = (
sourceReport: WorkspaceReport,
compareReport: WorkspaceReport
): WorkspaceDiffReport => ({
programs: computeProgramDiffs(sourceReport.programs, compareReport.programs),
programs: computeProgramDiffs(
sourceReport.programs[0].functions,
compareReport.programs[0].functions
),
contracts: computeContractDiffs(sourceReport.contracts, compareReport.contracts),
});

export const computeProgramDiffs = (
sourceReports: ProgramReport[],
compareReports: ProgramReport[]
sourceReports: CircuitReport[],
compareReports: CircuitReport[]
): DiffProgram[] => {
const sourceReportNames = sourceReports.map((report) => report.name);
const commonReportNames = compareReports
Expand All @@ -58,8 +66,8 @@ export const computeProgramDiffs = (
};

const computeProgramDiff = (
sourceReport: ProgramReport,
compareReport: ProgramReport
sourceReport: CircuitReport,
compareReport: CircuitReport
): DiffProgram => {
return {
name: sourceReport.name,
Expand Down Expand Up @@ -105,7 +113,10 @@ const computeContractDiff = (
sourceReport: ContractReport,
compareReport: ContractReport
): ContractDiffReport => {
const functionDiffs = computeProgramDiffs(sourceReport.functions, compareReport.functions);
const functionDiffs = computeProgramDiffs(
sourceReport.functions[0].functions,
compareReport.functions[0].functions
);

return {
name: sourceReport.name,
Expand Down
12 changes: 11 additions & 1 deletion src/types.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
import * as core from "@actions/core";

export interface ProgramReport {
export interface CircuitReport {
name: string;
acir_opcodes: number;
circuit_size: number;
}

export interface ProgramReport {
functions: CircuitReport[];
}

export interface ContractReport {
name: string;
functions: ProgramReport[];
Expand All @@ -16,6 +20,12 @@ export interface WorkspaceReport {
contracts: ContractReport[];
}

// Temporary workspace to get CI to pass when comparing against the old master report
export interface OldWorkspaceReport {
programs: CircuitReport[];
contracts: ContractReport[];
}

export interface WorkspaceDiffReport {
programs: DiffProgram[];
contracts: ContractDiffReport[];
Expand Down

0 comments on commit 8658815

Please sign in to comment.