fix(code-queue): add workdirs contract checks
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user