mirror of
https://github.com/logos-messaging/js-waku.git
synced 2026-01-08 00:33:12 +00:00
chore: use package version in container name
This commit is contained in:
parent
9e34309316
commit
161d094c8c
@ -37,7 +37,7 @@ services:
|
||||
|
||||
nwaku-1:
|
||||
<<: *nwaku-base
|
||||
container_name: waku-local-node-1
|
||||
container_name: ${COMPOSE_PROJECT_NAME:-waku-run-0-0-1}-node-1
|
||||
networks:
|
||||
default:
|
||||
ipv4_address: 172.20.0.10
|
||||
@ -84,7 +84,7 @@ services:
|
||||
|
||||
nwaku-2:
|
||||
<<: *nwaku-base
|
||||
container_name: waku-local-node-2
|
||||
container_name: ${COMPOSE_PROJECT_NAME:-waku-run-0-0-1}-node-2
|
||||
networks:
|
||||
default:
|
||||
ipv4_address: 172.20.0.11
|
||||
@ -136,7 +136,7 @@ volumes:
|
||||
|
||||
networks:
|
||||
default:
|
||||
name: waku-local-network
|
||||
name: ${COMPOSE_PROJECT_NAME:-waku-run-0-0-1}-network
|
||||
ipam:
|
||||
config:
|
||||
- subnet: 172.20.0.0/16
|
||||
|
||||
@ -35,9 +35,9 @@
|
||||
"build:web": "esbuild web/index.ts --bundle --format=esm --platform=browser --outdir=dist/web && cp web/index.html dist/web/index.html",
|
||||
"prepublishOnly": "npm run build",
|
||||
"start": "tsx scripts/start.ts",
|
||||
"stop": "docker compose down",
|
||||
"stop": "tsx scripts/stop.ts",
|
||||
"restart": "npm run stop && npm run start",
|
||||
"logs": "docker compose logs -f",
|
||||
"logs": "tsx scripts/logs.ts",
|
||||
"info": "tsx scripts/info.ts",
|
||||
"test": "if [ \"$CI\" = \"true\" ]; then echo 'Skipping tests in CI'; exit 0; fi && NODE_ENV=test node ./src/run-tests.js \"tests/basic.spec.ts\"",
|
||||
"test:browser": "if [ \"$CI\" = \"true\" ]; then echo 'Skipping browser tests in CI'; exit 0; fi && npm run build:web && npx playwright test --reporter=line",
|
||||
|
||||
@ -5,6 +5,7 @@ import { dirname, join } from "path";
|
||||
import { fileURLToPath } from "url";
|
||||
|
||||
import { NODE1_PEER_ID, NODE2_PEER_ID } from "../src/constants.js";
|
||||
import { getProjectName } from "../src/utils.js";
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = dirname(__filename);
|
||||
@ -33,10 +34,15 @@ const colors: Colors = {
|
||||
|
||||
try {
|
||||
// Check if containers are running
|
||||
const output: string = execSync("docker compose ps --quiet", {
|
||||
cwd: packageRoot,
|
||||
encoding: "utf-8"
|
||||
}).trim();
|
||||
const projectName = getProjectName(packageRoot);
|
||||
const output: string = execSync(
|
||||
`docker compose --project-name ${projectName} ps --quiet`,
|
||||
{
|
||||
cwd: packageRoot,
|
||||
encoding: "utf-8",
|
||||
env: { ...process.env, COMPOSE_PROJECT_NAME: projectName }
|
||||
}
|
||||
).trim();
|
||||
|
||||
if (!output) {
|
||||
process.stdout.write(
|
||||
|
||||
@ -4,6 +4,8 @@ import { execSync } from "child_process";
|
||||
import { dirname, join } from "path";
|
||||
import { fileURLToPath } from "url";
|
||||
|
||||
import { getProjectName } from "../src/utils.js";
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = dirname(__filename);
|
||||
// In development: scripts are in packages/run/scripts
|
||||
@ -13,9 +15,11 @@ const packageRoot = __dirname.includes("dist")
|
||||
: join(__dirname, "..");
|
||||
|
||||
try {
|
||||
execSync("docker compose logs -f", {
|
||||
const projectName = getProjectName(packageRoot);
|
||||
execSync(`docker compose --project-name ${projectName} logs -f`, {
|
||||
cwd: packageRoot,
|
||||
stdio: "inherit"
|
||||
stdio: "inherit",
|
||||
env: { ...process.env, COMPOSE_PROJECT_NAME: projectName }
|
||||
});
|
||||
} catch (error: unknown) {
|
||||
const err = error as { message?: string };
|
||||
|
||||
@ -5,6 +5,7 @@ import { dirname, join } from "path";
|
||||
import { fileURLToPath } from "url";
|
||||
|
||||
import { NODE1_PEER_ID, NODE2_PEER_ID } from "../src/constants.js";
|
||||
import { getProjectName } from "../src/utils.js";
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = dirname(__filename);
|
||||
@ -100,10 +101,12 @@ try {
|
||||
checkAndPullImages();
|
||||
|
||||
// Start docker compose from package root
|
||||
execSync("docker compose up -d", {
|
||||
const projectName = getProjectName(packageRoot);
|
||||
execSync(`docker compose --project-name ${projectName} up -d`, {
|
||||
cwd: packageRoot,
|
||||
stdio: ["ignore", "ignore", "pipe"],
|
||||
encoding: "utf-8"
|
||||
encoding: "utf-8",
|
||||
env: { ...process.env, COMPOSE_PROJECT_NAME: projectName }
|
||||
});
|
||||
|
||||
// Wait for nodes to be ready
|
||||
|
||||
@ -4,6 +4,8 @@ import { execSync } from "child_process";
|
||||
import { dirname, join } from "path";
|
||||
import { fileURLToPath } from "url";
|
||||
|
||||
import { getProjectName } from "../src/utils.js";
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = dirname(__filename);
|
||||
// In development: scripts are in packages/run/scripts
|
||||
@ -13,9 +15,11 @@ const packageRoot = __dirname.includes("dist")
|
||||
: join(__dirname, "..");
|
||||
|
||||
try {
|
||||
execSync("docker compose down", {
|
||||
const projectName = getProjectName(packageRoot);
|
||||
execSync(`docker compose --project-name ${projectName} down`, {
|
||||
cwd: packageRoot,
|
||||
stdio: "inherit"
|
||||
stdio: "inherit",
|
||||
env: { ...process.env, COMPOSE_PROJECT_NAME: projectName }
|
||||
});
|
||||
} catch (error: unknown) {
|
||||
const err = error as { message?: string };
|
||||
|
||||
@ -7,6 +7,7 @@ import { fileURLToPath } from "url";
|
||||
import { Protocols } from "@waku/sdk";
|
||||
|
||||
import { WakuTestClient } from "../src/test-client.js";
|
||||
import { getProjectName } from "../src/utils.js";
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = dirname(__filename);
|
||||
@ -38,10 +39,15 @@ async function main(): Promise<void> {
|
||||
|
||||
try {
|
||||
// Check if containers are running
|
||||
const output: string = execSync("docker compose ps --quiet", {
|
||||
cwd: packageRoot,
|
||||
encoding: "utf-8"
|
||||
}).trim();
|
||||
const projectName = getProjectName(packageRoot);
|
||||
const output: string = execSync(
|
||||
`docker compose --project-name ${projectName} ps --quiet`,
|
||||
{
|
||||
cwd: packageRoot,
|
||||
encoding: "utf-8",
|
||||
env: { ...process.env, COMPOSE_PROJECT_NAME: projectName }
|
||||
}
|
||||
).trim();
|
||||
|
||||
if (!output) {
|
||||
process.stderr.write(
|
||||
|
||||
11
packages/run/src/utils.ts
Normal file
11
packages/run/src/utils.ts
Normal file
@ -0,0 +1,11 @@
|
||||
import { readFileSync } from "fs";
|
||||
import { join } from "path";
|
||||
|
||||
export function getProjectName(packageRoot: string): string {
|
||||
const packageJsonPath = join(packageRoot, "package.json");
|
||||
const packageJson = JSON.parse(readFileSync(packageJsonPath, "utf-8"));
|
||||
// Docker Compose project names must consist only of lowercase alphanumeric characters, hyphens, and underscores
|
||||
const name = packageJson.name.replace("@", "").replace("/", "-");
|
||||
const version = packageJson.version.replace(/\./g, "-");
|
||||
return `${name}-${version}`;
|
||||
}
|
||||
@ -1,9 +1,16 @@
|
||||
import { execSync } from "child_process";
|
||||
import { dirname, join } from "path";
|
||||
import { fileURLToPath } from "url";
|
||||
|
||||
import { Protocols } from "@waku/sdk";
|
||||
import { expect } from "chai";
|
||||
|
||||
import { WakuTestClient } from "../src/test-client.js";
|
||||
import { getProjectName } from "../src/utils.js";
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = dirname(__filename);
|
||||
const packageRoot = join(__dirname, "..");
|
||||
|
||||
describe("Waku Run - Basic Test", function () {
|
||||
this.timeout(90000);
|
||||
@ -12,8 +19,11 @@ describe("Waku Run - Basic Test", function () {
|
||||
|
||||
before(async function () {
|
||||
// Step 1: Start the nodes
|
||||
execSync("docker compose up -d", {
|
||||
stdio: "inherit"
|
||||
const projectName = getProjectName(packageRoot);
|
||||
execSync(`docker compose --project-name ${projectName} up -d`, {
|
||||
cwd: packageRoot,
|
||||
stdio: "inherit",
|
||||
env: { ...process.env, COMPOSE_PROJECT_NAME: projectName }
|
||||
});
|
||||
|
||||
// Wait for nodes to be ready
|
||||
@ -65,8 +75,11 @@ describe("Waku Run - Basic Test", function () {
|
||||
if (client) {
|
||||
await client.stop();
|
||||
}
|
||||
execSync("docker compose down", {
|
||||
stdio: "inherit"
|
||||
const projectName = getProjectName(packageRoot);
|
||||
execSync(`docker compose --project-name ${projectName} down`, {
|
||||
cwd: packageRoot,
|
||||
stdio: "inherit",
|
||||
env: { ...process.env, COMPOSE_PROJECT_NAME: projectName }
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@ -5,11 +5,13 @@ import { fileURLToPath } from "url";
|
||||
import { Browser, chromium, expect, Page, test } from "@playwright/test";
|
||||
|
||||
import { NODE1_PEER_ID, NODE2_PEER_ID } from "../src/constants.js";
|
||||
import { getProjectName } from "../src/utils.js";
|
||||
|
||||
import { startTestServer, stopTestServer } from "./test-server.js";
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = dirname(__filename);
|
||||
const packageRoot = join(__dirname, "..");
|
||||
|
||||
test.describe.configure({ mode: "serial" });
|
||||
|
||||
@ -24,9 +26,11 @@ test.describe("Waku Run - Browser Test", () => {
|
||||
await startTestServer(testPort);
|
||||
|
||||
// Start docker compose
|
||||
execSync("docker compose up -d", {
|
||||
const projectName = getProjectName(packageRoot);
|
||||
execSync(`docker compose --project-name ${projectName} up -d`, {
|
||||
stdio: "inherit",
|
||||
cwd: join(__dirname, "..")
|
||||
cwd: packageRoot,
|
||||
env: { ...process.env, COMPOSE_PROJECT_NAME: projectName }
|
||||
});
|
||||
|
||||
// Wait for nodes to be ready
|
||||
@ -100,9 +104,11 @@ test.describe("Waku Run - Browser Test", () => {
|
||||
await browser.close();
|
||||
}
|
||||
|
||||
execSync("docker compose down", {
|
||||
const projectName = getProjectName(packageRoot);
|
||||
execSync(`docker compose --project-name ${projectName} down`, {
|
||||
stdio: "inherit",
|
||||
cwd: join(__dirname, "..")
|
||||
cwd: packageRoot,
|
||||
env: { ...process.env, COMPOSE_PROJECT_NAME: projectName }
|
||||
});
|
||||
|
||||
await stopTestServer();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user