-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Expand file tree
/
Copy pathcheck.ts
More file actions
44 lines (36 loc) · 1.21 KB
/
check.ts
File metadata and controls
44 lines (36 loc) · 1.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/usr/bin/env bun
// Checks that upgradeable contracts have proper version bumps when bytecode changes.
// Usage: bun ci/upgrade-check/check.ts <baseline-pkg-dir> <pr-pkg-dir>
import { collectUpgradeVersionResults } from "./lib";
const [baselineDir, prDir] = process.argv.slice(2);
if (!baselineDir || !prDir) {
console.error("Usage: bun ci/upgrade-check/check.ts <baseline-pkg-dir> <pr-pkg-dir>");
process.exit(1);
}
const results = collectUpgradeVersionResults(baselineDir, prDir);
let errors = 0;
for (const result of results) {
console.log(`::group::Checking ${result.name}`);
try {
if (!result.baselineExists) {
console.log(`Skipping ${result.name} (new contract, not in baseline)`);
continue;
}
if (result.bytecodeChanged) {
console.log(`${result.name}: bytecode CHANGED`);
} else {
console.log(`${result.name}: bytecode unchanged`);
}
for (const error of result.errors) {
console.error(`::error::${error}`);
errors++;
}
} finally {
console.log("::endgroup::");
}
}
if (errors > 0) {
console.error(`::error::Upgrade version check failed with ${errors} error(s)`);
process.exit(1);
}
console.log("All contracts passed upgrade version checks");