mirror of
https://github.com/datahaven-xyz/datahaven
synced 2026-05-24 09:50:01 +00:00
feat: ✨ add Bun version check to CLI dependencies (#101)
Add version validation to ensure Bun 1.2+ is used for consistent behavior across development environments.
This commit is contained in:
parent
79a1d19b0e
commit
c73cb58ec3
3 changed files with 34 additions and 1 deletions
|
|
@ -12,7 +12,7 @@
|
|||
## Pre-requisites
|
||||
|
||||
- [Kurtosis](https://docs.kurtosis.com/install): For launching test networks
|
||||
- [Bun](https://bun.sh/): TypeScript runtime and package manager
|
||||
- [Bun](https://bun.sh/) v1.2 or higher: TypeScript runtime and package manager
|
||||
- [Docker](https://www.docker.com/): For container management
|
||||
|
||||
##### MacOS
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import { $ } from "bun";
|
|||
import invariant from "tiny-invariant";
|
||||
import { logger, printDivider, printHeader } from "utils";
|
||||
import type { DeployOptions } from "../deploy";
|
||||
import { MIN_BUN_VERSION } from "./consts";
|
||||
import type { LaunchedNetwork } from "./launchedNetwork";
|
||||
|
||||
// ===== Checks =====
|
||||
|
|
@ -15,6 +16,15 @@ export const checkBaseDependencies = async (): Promise<void> => {
|
|||
|
||||
logger.success("Kurtosis CLI found");
|
||||
|
||||
if (!(await checkBunVersion())) {
|
||||
logger.error(
|
||||
`Bun version must be ${MIN_BUN_VERSION.major}.${MIN_BUN_VERSION.minor} or higher: https://bun.sh/docs/installation#upgrading`
|
||||
);
|
||||
throw Error("❌ Bun version is too old.");
|
||||
}
|
||||
|
||||
logger.success("Bun is installed and up to date");
|
||||
|
||||
if (!(await checkDockerRunning())) {
|
||||
logger.error("Is Docker Running? Unable to make connection to docker daemon");
|
||||
throw Error("❌ Error connecting to Docker");
|
||||
|
|
@ -72,6 +82,24 @@ export const deploymentChecks = async (
|
|||
printDivider();
|
||||
};
|
||||
|
||||
const checkBunVersion = async (): Promise<boolean> => {
|
||||
const bunVersion = Bun.version;
|
||||
const [major, minor] = bunVersion.split(".").map(Number);
|
||||
|
||||
// Check if version meets minimum requirements
|
||||
const isVersionValid =
|
||||
major > MIN_BUN_VERSION.major ||
|
||||
(major === MIN_BUN_VERSION.major && minor >= MIN_BUN_VERSION.minor);
|
||||
|
||||
if (!isVersionValid) {
|
||||
logger.debug(`Bun version: ${bunVersion} (too old)`);
|
||||
return false;
|
||||
}
|
||||
|
||||
logger.debug(`Bun version: ${bunVersion}`);
|
||||
return true;
|
||||
};
|
||||
|
||||
const checkKurtosisInstalled = async (): Promise<boolean> => {
|
||||
const { exitCode, stderr, stdout } = await $`kurtosis version`.nothrow().quiet();
|
||||
if (exitCode !== 0) {
|
||||
|
|
|
|||
|
|
@ -42,3 +42,8 @@ export const BASE_SERVICES = [
|
|||
"el-2-reth-lodestar",
|
||||
"dora"
|
||||
];
|
||||
|
||||
/**
|
||||
* Minimum required Bun version
|
||||
*/
|
||||
export const MIN_BUN_VERSION = { major: 1, minor: 2 };
|
||||
|
|
|
|||
Loading…
Reference in a new issue