fix(code-queue): add workdirs contract checks

This commit is contained in:
Codex
2026-05-19 02:07:41 +00:00
parent 49cf1e57bb
commit 6006017393
9 changed files with 611 additions and 9 deletions
@@ -255,6 +255,56 @@ spec:
bun install --frozen-lockfile
(cd src && bun install --frozen-lockfile)
UNIDESK_D601_RUST_CHECK=1 bun scripts/cli.ts check --full --rust
cargo build --manifest-path src/components/microservices/code-queue-mgr/Cargo.toml --release
CQ_MGR_ID="$(printf '%s' "$(params.revision)" | tr -cd 'A-Za-z0-9_.-' | cut -c1-48)"
CQ_MGR_DB="$(workspaces.source.path)/code-queue-mgr-workdirs-postgres"
rm -rf "$CQ_MGR_DB"
mkdir -p "$CQ_MGR_DB"
docker rm -f "code-queue-mgr-workdirs-$CQ_MGR_ID" >/dev/null 2>&1 || true
docker run -d --name "code-queue-mgr-workdirs-$CQ_MGR_ID" \
-p 127.0.0.1::5432 \
-e POSTGRES_USER=unidesk_ci \
-e POSTGRES_PASSWORD=unidesk_ci_password \
-e POSTGRES_DB=unidesk_ci \
-v "$CQ_MGR_DB:/var/lib/postgresql/data" \
postgres:16-alpine >/tmp/code-queue-mgr-workdirs-postgres.cid
CQ_MGR_DB_PORT="$(docker inspect "code-queue-mgr-workdirs-$CQ_MGR_ID" --format '{{(index (index .NetworkSettings.Ports "5432/tcp") 0).HostPort}}')"
cleanup() {
docker rm -f "code-queue-mgr-workdirs-$CQ_MGR_ID" >/dev/null 2>&1 || true
}
trap cleanup EXIT
for _ in $(seq 1 60); do
if docker exec "code-queue-mgr-workdirs-$CQ_MGR_ID" pg_isready -U unidesk_ci -d unidesk_ci >/dev/null 2>&1; then
break
fi
sleep 1
done
CQ_MGR_PORT="$(python3 - <<'PY'
import socket
s = socket.socket()
s.bind(("127.0.0.1", 0))
print(s.getsockname()[1])
s.close()
PY
)"
DATABASE_URL="postgres://unidesk_ci:unidesk_ci_password@127.0.0.1:$CQ_MGR_DB_PORT/unidesk_ci" \
HOST=127.0.0.1 \
PORT="$CQ_MGR_PORT" \
CODE_QUEUE_MAIN_PROVIDER_ID=D601 \
CODE_QUEUE_WORKDIR=/workspace \
CODE_QUEUE_REMOTE_WORKDIR=/home/ubuntu \
src/components/microservices/code-queue-mgr/target/release/code-queue-mgr >"$(workspaces.source.path)/code-queue-mgr-workdirs.log" 2>&1 &
cq_mgr_pid="$!"
trap 'kill "$cq_mgr_pid" >/dev/null 2>&1 || true; cleanup' EXIT
for _ in $(seq 1 60); do
if curl -fsS "http://127.0.0.1:$CQ_MGR_PORT/health" >/dev/null 2>&1; then
break
fi
sleep 1
done
workdirs_json="$(curl -fsS "http://127.0.0.1:$CQ_MGR_PORT/api/workdirs")"
printf '%s\n' "$workdirs_json"
WORKDIRS_JSON="$workdirs_json" bun -e 'const body=JSON.parse(process.env.WORKDIRS_JSON||"{}"); if (body.ok !== true || !Array.isArray(body.workdirs) || !body.workdirs.some((item)=>item && item.path === "/workspace" && item.providerId === "D601" && item.executionMode === "default")) { console.error(JSON.stringify(body)); process.exit(1); }'
---
apiVersion: tekton.dev/v1
kind: Task