2025-11-01 14:31:48 +01:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
set -euo pipefail
|
|
|
|
|
# Cross-build the workflow-runner for Linux and Illumos targets.
|
|
|
|
|
# Requires: cross (https://github.com/cross-rs/cross)
|
2025-11-06 21:44:06 +01:00
|
|
|
# Builds and stages runner binaries under target/runners for the orchestrator HTTP server.
|
|
|
|
|
# Outputs (staged for serving by orchestrator):
|
|
|
|
|
# - target/runners/solstice-runner-linux
|
|
|
|
|
# - target/runners/solstice-runner-illumos
|
|
|
|
|
# - target/runners/solstice-runner (symlink to -linux by default)
|
2025-11-01 14:31:48 +01:00
|
|
|
|
|
|
|
|
ROOT_DIR=$(cd "$(dirname "$0")/../../.." && pwd)
|
|
|
|
|
cd "$ROOT_DIR"
|
|
|
|
|
|
|
|
|
|
if ! command -v cross >/dev/null 2>&1; then
|
|
|
|
|
echo "cross is required. Install with: cargo install cross" >&2
|
|
|
|
|
exit 127
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Build Linux runner
|
|
|
|
|
cross build -p workflow-runner --target x86_64-unknown-linux-gnu --release
|
|
|
|
|
# Build Illumos runner
|
|
|
|
|
cross build -p workflow-runner --target x86_64-unknown-illumos --release
|
|
|
|
|
|
2025-11-06 21:44:06 +01:00
|
|
|
LIN_BIN="${ROOT_DIR}/target/x86_64-unknown-linux-gnu/release/solstice-runner"
|
|
|
|
|
ILL_BIN="${ROOT_DIR}/target/x86_64-unknown-illumos/release/solstice-runner"
|
|
|
|
|
SERVE_DIR="${ROOT_DIR}/target/runners"
|
|
|
|
|
mkdir -p "$SERVE_DIR"
|
|
|
|
|
|
|
|
|
|
# Stage with orchestrator-expected filenames
|
|
|
|
|
if [[ -f "$LIN_BIN" ]]; then
|
|
|
|
|
cp -f "$LIN_BIN" "$SERVE_DIR/solstice-runner-linux"
|
|
|
|
|
chmod +x "$SERVE_DIR/solstice-runner-linux" || true
|
|
|
|
|
fi
|
|
|
|
|
if [[ -f "$ILL_BIN" ]]; then
|
|
|
|
|
cp -f "$ILL_BIN" "$SERVE_DIR/solstice-runner-illumos"
|
|
|
|
|
chmod +x "$SERVE_DIR/solstice-runner-illumos" || true
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Provide a generic solstice-runner as a convenience (symlink to linux)
|
|
|
|
|
if [[ -f "$SERVE_DIR/solstice-runner-linux" ]]; then
|
|
|
|
|
ln -sf "solstice-runner-linux" "$SERVE_DIR/solstice-runner"
|
|
|
|
|
fi
|
|
|
|
|
|
2025-11-01 14:31:48 +01:00
|
|
|
echo "Built runner binaries:" >&2
|
2025-11-06 21:44:06 +01:00
|
|
|
ls -l "$LIN_BIN" 2>/dev/null || true
|
|
|
|
|
ls -l "$ILL_BIN" 2>/dev/null || true
|
|
|
|
|
|
|
|
|
|
echo "Staged for orchestrator serving under $SERVE_DIR:" >&2
|
|
|
|
|
ls -l "$SERVE_DIR" 2>/dev/null || true
|