Files
buzz/scripts/test-k8s-provider-release.sh
cls 4a79c0072c
Docker image / Build (linux/amd64) (push) Has been cancelled
Docker image / Build (linux/arm64) (push) Has been cancelled
Docker image / Merge release multi-arch manifest (push) Has been cancelled
Docker image / Merge debug multi-arch manifest (push) Has been cancelled
Docker image / Build public push gateway (linux/amd64) (push) Has been cancelled
Docker image / Build public push gateway (linux/arm64) (push) Has been cancelled
Docker image / Publish public push gateway image (push) Has been cancelled
Harbor Buzz Orchestra / Python tests and lint (push) Has been cancelled
CI / Detect Changed Paths (push) Has been cancelled
CI / Rust Lint (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Desktop Core (push) Has been cancelled
CI / Desktop Smoke E2E (1) (push) Has been cancelled
CI / Desktop Smoke E2E (2) (push) Has been cancelled
CI / Desktop Smoke E2E (3) (push) Has been cancelled
CI / Desktop Smoke E2E (4) (push) Has been cancelled
CI / Desktop (push) Has been cancelled
CI / Desktop E2E Relay (push) Has been cancelled
CI / Desktop E2E Integration (1/2) (push) Has been cancelled
CI / Desktop E2E Integration (2/2) (push) Has been cancelled
CI / Desktop E2E Integration (push) Has been cancelled
CI / Backend Integration (relay e2e) (push) Has been cancelled
CI / Relay E2E (push) Has been cancelled
CI / Web (push) Has been cancelled
CI / Mobile (push) Has been cancelled
CI / Security (push) Has been cancelled
CI / Dead Token Reference Guard (push) Has been cancelled
CI / Server Cross-Compile (aarch64-unknown-linux-musl) (push) Has been cancelled
CI / Server Cross-Compile (x86_64-unknown-linux-musl) (push) Has been cancelled
CI / Windows Rust (x86_64-pc-windows-msvc) (push) Has been cancelled
CI / Desktop Build (macOS) (push) Has been cancelled
helm chart / lint + unittest + render matrix (push) Has been cancelled
helm chart / install on kind (gated) (push) Has been cancelled
helm chart / publish chart to GHCR (push) Has been cancelled
Mesh Lifecycle / Relay-Driven Mesh Lifecycle Smoke (push) Has been cancelled
Sprig image / Build (linux/amd64) (push) Has been cancelled
Sprig image / Build (linux/arm64) (push) Has been cancelled
Sprig image / Merge multi-arch manifest (push) Has been cancelled
Sprig / Build (aarch64-unknown-linux-musl) (push) Has been cancelled
Sprig / Build (x86_64-unknown-linux-musl) (push) Has been cancelled
Sprig / Publish rolling release (push) Has been cancelled
Sprig / Publish tagged release (push) Has been cancelled
Import exact Chinese Buzz source tree
Signed-off-by: cls_???? <908705107@qq.com>
2026-08-13 18:38:15 +08:00

79 lines
2.1 KiB
Bash
Executable File

#!/usr/bin/env bash
# Reproduce the desktop release's multi-package build shape, then prove the
# Kubernetes provider reports an unreachable cluster in-band rather than
# panicking when rustls has multiple compiled crypto providers available.
set -euo pipefail
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "$ROOT"
TARGET_DIR="${CARGO_TARGET_DIR:-$ROOT/target}"
PROVIDER_BINARY="$TARGET_DIR/release/buzz-backend-kubernetes"
CARGO="${CARGO:-cargo}"
"$CARGO" build --release \
-p buzz-acp \
-p buzz-agent \
-p buzz-dev-mcp \
-p git-credential-nostr \
-p buzz-cli \
-p buzz-backend-kubernetes
TMP="$(mktemp -d)"
trap 'rm -rf "$TMP"' EXIT
cat >"$TMP/kubeconfig" <<'YAML'
apiVersion: v1
kind: Config
clusters:
- name: unreachable
cluster:
server: http://127.0.0.1:9
contexts:
- name: unreachable
context:
cluster: unreachable
user: none
current-context: unreachable
users:
- name: none
user: {}
YAML
cat >"$TMP/request.json" <<'JSON'
{
"op": "deploy",
"agent": {
"relay_url": "wss://relay.example",
"private_key_nsec": "nsec1vl029mgpspedva04g90vltkh6fvh240zqtv9k0t9af8935ke9laqsnlfe5",
"auth_tag": "owner",
"launch": {"command": "goose", "args": [], "env": {}, "policy_env": {}}
},
"provider_config": {
"context": "unreachable",
"namespace": "never-created",
"image": "example.invalid/sprig@sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"inactivity_seconds": 60
}
}
JSON
set +e
KUBECONFIG="$TMP/kubeconfig" \
"$PROVIDER_BINARY" \
<"$TMP/request.json" >"$TMP/stdout" 2>"$TMP/stderr"
status=$?
set -e
[[ "$status" == 0 ]] || {
echo "provider exited $status instead of returning an in-band failure" >&2
cat "$TMP/stderr" >&2
exit 1
}
[[ "$(wc -l <"$TMP/stdout" | tr -d ' ')" == 1 ]]
jq -e '.ok == false and (.error | type == "string" and length > 0)' "$TMP/stdout" >/dev/null
if rg -i 'panic|crypto provider|no process-level' "$TMP/stdout" "$TMP/stderr"; then
echo "provider emitted a panic/crypto-provider failure" >&2
exit 1
fi
printf 'PASS: release-shaped provider returned one in-band unreachable-cluster failure\n'