49 lines
1.3 KiB
Bash
Executable File
49 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# CLI smoke tests for forge-mesh forge and agent binaries
|
|
set -euo pipefail
|
|
|
|
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
cd "$ROOT"
|
|
|
|
export GOROOT="${GOROOT:-/usr/local/go}"
|
|
export PATH="${GOROOT}/bin:${PATH}"
|
|
|
|
CLI_CONFIG="/tmp/forge-mesh-cli-config.json"
|
|
CLI_DIR="/tmp/forge-mesh-cli"
|
|
mkdir -p "${CLI_DIR}"
|
|
|
|
cat > "${CLI_CONFIG}" <<EOF
|
|
{
|
|
"listen_addr": ":0",
|
|
"data_dir": "${CLI_DIR}",
|
|
"database_path": "${CLI_DIR}/cli.db",
|
|
"auth": {
|
|
"basic_username": "admin",
|
|
"basic_password": "changeme",
|
|
"fleet_secret": "cli-test-secret"
|
|
},
|
|
"forge": {
|
|
"signing_key_path": "${CLI_DIR}/signing.key",
|
|
"artifacts_dir": "${CLI_DIR}/artifacts"
|
|
}
|
|
}
|
|
EOF
|
|
|
|
echo "==> [cli] building forge CLI + agent"
|
|
make -C "${ROOT}" agent
|
|
go build -o "${CLI_DIR}/forge" ./cmd/forge
|
|
|
|
echo "==> [cli] forge pubkey"
|
|
PUBKEY="$("${CLI_DIR}/forge" pubkey --config "${CLI_CONFIG}")"
|
|
[[ -n "${PUBKEY}" ]] || { echo "empty pubkey"; exit 1; }
|
|
echo " pubkey: ${PUBKEY:0:16}..."
|
|
|
|
echo "==> [cli] forge build (public artifacts)"
|
|
BUILD_OUT="$("${CLI_DIR}/forge" build --config "${CLI_CONFIG}" --public 2>&1)"
|
|
echo "${BUILD_OUT}" | grep -q 'built linux/amd64' || { echo "${BUILD_OUT}"; exit 1; }
|
|
|
|
echo "==> [cli] agent --help exits cleanly"
|
|
./bin/forge-mesh-agent -h 2>&1 | grep -q 'deck' || ./bin/forge-mesh-agent 2>&1 | grep -q 'fleet secret'
|
|
|
|
echo "✓ cli tests passed"
|