mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-30 05:27:36 +02:00
fix: keep host plugin registry out of live Docker state
This commit is contained in:
@@ -69,14 +69,16 @@ openclaw_live_stage_state_dir() {
|
||||
mkdir -p "$dest_dir"
|
||||
if [ -d "$source_dir" ]; then
|
||||
# Sandbox workspaces can accumulate root-owned artifacts from prior Docker
|
||||
# runs. They are not needed for live-test auth/config staging and can make
|
||||
# temp-dir cleanup fail on exit, so keep them out of the staged state copy.
|
||||
# runs. The persisted plugin registry contains host-absolute paths that are
|
||||
# not portable into Linux containers. Neither is needed for live-test
|
||||
# auth/config staging, so keep them out of the staged state copy.
|
||||
set +e
|
||||
tar -C "$source_dir" \
|
||||
--warning=no-file-changed \
|
||||
--ignore-failed-read \
|
||||
--exclude=workspace \
|
||||
--exclude=sandboxes \
|
||||
--exclude=plugins/installs.json \
|
||||
--exclude=relay.sock \
|
||||
--exclude='*.sock' \
|
||||
--exclude='*/*.sock' \
|
||||
|
||||
@@ -228,6 +228,7 @@ const TOOLING_SOURCE_TEST_TARGETS = new Map([
|
||||
["scripts/github/barnacle-auto-response.mjs", ["test/scripts/barnacle-auto-response.test.ts"]],
|
||||
["scripts/changed-lanes.mjs", ["test/scripts/changed-lanes.test.ts"]],
|
||||
["scripts/check-changed.mjs", ["test/scripts/changed-lanes.test.ts"]],
|
||||
["scripts/lib/live-docker-stage.sh", ["test/scripts/live-docker-stage.test.ts"]],
|
||||
["scripts/lib/vitest-local-scheduling.mjs", ["test/scripts/vitest-local-scheduling.test.ts"]],
|
||||
[
|
||||
"scripts/run-vitest.mjs",
|
||||
@@ -251,6 +252,7 @@ const TOOLING_SOURCE_TEST_TARGETS = new Map([
|
||||
const TOOLING_TEST_TARGETS = new Map([
|
||||
["test/scripts/barnacle-auto-response.test.ts", ["test/scripts/barnacle-auto-response.test.ts"]],
|
||||
["test/scripts/changed-lanes.test.ts", ["test/scripts/changed-lanes.test.ts"]],
|
||||
["test/scripts/live-docker-stage.test.ts", ["test/scripts/live-docker-stage.test.ts"]],
|
||||
["test/scripts/test-projects.test.ts", ["test/scripts/test-projects.test.ts"]],
|
||||
[
|
||||
"test/scripts/vitest-local-scheduling.test.ts",
|
||||
|
||||
18
test/scripts/live-docker-stage.test.ts
Normal file
18
test/scripts/live-docker-stage.test.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
import { readFileSync } from "node:fs";
|
||||
import path from "node:path";
|
||||
import { fileURLToPath } from "node:url";
|
||||
import { describe, expect, it } from "vitest";
|
||||
|
||||
const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../..");
|
||||
const stageScriptPath = path.join(repoRoot, "scripts/lib/live-docker-stage.sh");
|
||||
|
||||
describe("live Docker state staging", () => {
|
||||
it("keeps host-only generated registry state out of the container copy", () => {
|
||||
const script = readFileSync(stageScriptPath, "utf8");
|
||||
|
||||
expect(script).toContain("--exclude=workspace");
|
||||
expect(script).toContain("--exclude=sandboxes");
|
||||
expect(script).toContain("--exclude=plugins/installs.json");
|
||||
expect(script).toContain("host-absolute paths");
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user