Reorganize the source checkout layout
Separate tracked source from generated artifacts so the repo root stops accumulating helper scripts, manifests, and local runtime outputs. Move manual shell entrypoints under scripts/, manifests under config/, and the Firecracker API reference under docs/reference/. Make build and runtimebundle now target build/bin, build/runtime, and build/dist as the canonical source-checkout paths. Update runtime discovery, helper scripts, tests, and docs to follow the new layout while keeping legacy source-checkout runtime fallbacks for existing local bundles during migration. Validated with bash -n on the moved scripts, make build, and GOCACHE=/tmp/banger-gocache go test ./....
This commit is contained in:
parent
2362d0ae39
commit
01c7cb5e65
23 changed files with 296 additions and 186 deletions
55
Makefile
55
Makefile
|
|
@ -8,10 +8,14 @@ BINDIR ?= $(PREFIX)/bin
|
|||
LIBDIR ?= $(PREFIX)/lib
|
||||
RUNTIMEDIR ?= $(LIBDIR)/banger
|
||||
DESTDIR ?=
|
||||
RUNTIME_MANIFEST ?= runtime-bundle.toml
|
||||
RUNTIME_SOURCE_DIR ?= runtime
|
||||
RUNTIME_ARCHIVE ?= dist/banger-runtime.tar.gz
|
||||
BINARIES := banger bangerd
|
||||
BUILD_DIR ?= build
|
||||
BUILD_BIN_DIR ?= $(BUILD_DIR)/bin
|
||||
RUNTIME_MANIFEST ?= config/runtime-bundle.toml
|
||||
RUNTIME_SOURCE_DIR ?= $(BUILD_DIR)/runtime
|
||||
RUNTIME_ARCHIVE ?= $(BUILD_DIR)/dist/banger-runtime.tar.gz
|
||||
BANGER_BIN ?= $(BUILD_BIN_DIR)/banger
|
||||
BANGERD_BIN ?= $(BUILD_BIN_DIR)/bangerd
|
||||
BINARIES := $(BANGER_BIN) $(BANGERD_BIN)
|
||||
RUNTIME_HELPERS := $(RUNTIME_SOURCE_DIR)/banger-vsock-agent
|
||||
GO_SOURCES := $(shell find cmd internal -type f -name '*.go' | sort)
|
||||
RUNTIME_EXECUTABLES := firecracker customize.sh packages.sh namegen banger-vsock-agent
|
||||
|
|
@ -29,8 +33,8 @@ VOID_VM_NAME ?= void-dev
|
|||
help:
|
||||
@printf '%s\n' \
|
||||
'Targets:' \
|
||||
' make build Build ./banger and ./bangerd' \
|
||||
' make runtime-bundle Fetch and unpack ./runtime from the archive referenced by $(RUNTIME_MANIFEST)' \
|
||||
' make build Build ./build/bin/banger and ./build/bin/bangerd' \
|
||||
' make runtime-bundle Fetch and unpack ./build/runtime from the archive referenced by $(RUNTIME_MANIFEST)' \
|
||||
' make runtime-package Package $(RUNTIME_SOURCE_DIR) into $(RUNTIME_ARCHIVE) and print its SHA256' \
|
||||
' make bench-create Benchmark vm create and SSH readiness with scripts/bench-create.sh' \
|
||||
' make install Build and install binaries plus the runtime bundle into $(DESTDIR)$(BINDIR) and $(DESTDIR)$(RUNTIMEDIR)' \
|
||||
|
|
@ -38,20 +42,22 @@ help:
|
|||
' make fmt Format Go sources under cmd/ and internal/' \
|
||||
' make tidy Run go mod tidy' \
|
||||
' make clean Remove built Go binaries' \
|
||||
' make rootfs Rebuild the source-checkout default Debian rootfs image in ./runtime' \
|
||||
' make void-kernel Download and stage a Void kernel, initramfs, and modules under ./runtime/void-kernel' \
|
||||
' make rootfs-void Build an experimental Void Linux rootfs and work-seed in ./runtime' \
|
||||
' make rootfs Rebuild the source-checkout default Debian rootfs image in ./build/runtime' \
|
||||
' make void-kernel Download and stage a Void kernel, initramfs, and modules under ./build/runtime/void-kernel' \
|
||||
' make rootfs-void Build an experimental Void Linux rootfs and work-seed in ./build/runtime' \
|
||||
' make void-register Register or update the experimental Void image as $(VOID_IMAGE_NAME)' \
|
||||
' make void-vm Register the experimental Void image and create a VM named $(VOID_VM_NAME)' \
|
||||
' make verify-void Register the experimental Void image and run verify.sh against it'
|
||||
' make verify-void Register the experimental Void image and run scripts/verify.sh against it'
|
||||
|
||||
build: $(BINARIES) $(RUNTIME_HELPERS)
|
||||
|
||||
banger: $(GO_SOURCES) go.mod go.sum
|
||||
$(GO) build -o ./banger ./cmd/banger
|
||||
$(BANGER_BIN): $(GO_SOURCES) go.mod go.sum
|
||||
mkdir -p "$(BUILD_BIN_DIR)"
|
||||
$(GO) build -o "$(BANGER_BIN)" ./cmd/banger
|
||||
|
||||
bangerd: $(GO_SOURCES) go.mod go.sum
|
||||
$(GO) build -o ./bangerd ./cmd/bangerd
|
||||
$(BANGERD_BIN): $(GO_SOURCES) go.mod go.sum
|
||||
mkdir -p "$(BUILD_BIN_DIR)"
|
||||
$(GO) build -o "$(BANGERD_BIN)" ./cmd/bangerd
|
||||
|
||||
$(RUNTIME_SOURCE_DIR)/banger-vsock-agent: $(GO_SOURCES) go.mod go.sum
|
||||
mkdir -p "$(RUNTIME_SOURCE_DIR)"
|
||||
|
|
@ -67,7 +73,8 @@ tidy:
|
|||
$(GO) mod tidy
|
||||
|
||||
clean:
|
||||
rm -f ./banger ./bangerd
|
||||
rm -rf "$(BUILD_BIN_DIR)"
|
||||
rm -f "$(RUNTIME_SOURCE_DIR)/banger-vsock-agent"
|
||||
|
||||
runtime-bundle:
|
||||
$(GO) run ./cmd/runtimebundle fetch --manifest "$(RUNTIME_MANIFEST)" --out "$(RUNTIME_SOURCE_DIR)"
|
||||
|
|
@ -76,7 +83,7 @@ runtime-package:
|
|||
$(GO) run ./cmd/runtimebundle package --manifest "$(RUNTIME_MANIFEST)" --runtime-dir "$(RUNTIME_SOURCE_DIR)" --out "$(RUNTIME_ARCHIVE)"
|
||||
|
||||
bench-create: build
|
||||
bash ./scripts/bench-create.sh $(ARGS)
|
||||
BANGER_BIN="$(abspath $(BANGER_BIN))" bash ./scripts/bench-create.sh $(ARGS)
|
||||
|
||||
check-runtime:
|
||||
@test -d "$(RUNTIME_SOURCE_DIR)" || { echo "missing runtime bundle directory: $(RUNTIME_SOURCE_DIR); run 'make runtime-bundle'" >&2; exit 1; }
|
||||
|
|
@ -89,8 +96,8 @@ install: build check-runtime
|
|||
mkdir -p "$(DESTDIR)$(RUNTIMEDIR)"
|
||||
mkdir -p "$(DESTDIR)$(RUNTIMEDIR)/wtf/root/boot"
|
||||
mkdir -p "$(DESTDIR)$(RUNTIMEDIR)/wtf/root/lib/modules"
|
||||
$(INSTALL) -m 0755 ./banger "$(DESTDIR)$(BINDIR)/banger"
|
||||
$(INSTALL) -m 0755 ./bangerd "$(DESTDIR)$(BINDIR)/bangerd"
|
||||
$(INSTALL) -m 0755 "$(BANGER_BIN)" "$(DESTDIR)$(BINDIR)/banger"
|
||||
$(INSTALL) -m 0755 "$(BANGERD_BIN)" "$(DESTDIR)$(BINDIR)/bangerd"
|
||||
@for path in $(RUNTIME_EXECUTABLES); do \
|
||||
$(INSTALL) -m 0755 "$(RUNTIME_SOURCE_DIR)/$$path" "$(DESTDIR)$(RUNTIMEDIR)/$$path"; \
|
||||
done
|
||||
|
|
@ -106,19 +113,19 @@ install: build check-runtime
|
|||
cp -a "$(RUNTIME_SOURCE_DIR)/$(RUNTIME_MODULES_DIR)" "$(DESTDIR)$(RUNTIMEDIR)/wtf/root/lib/modules/"
|
||||
|
||||
rootfs:
|
||||
BANGER_RUNTIME_DIR="$(abspath $(RUNTIME_SOURCE_DIR))" ./make-rootfs.sh
|
||||
BANGER_RUNTIME_DIR="$(abspath $(RUNTIME_SOURCE_DIR))" ./scripts/make-rootfs.sh
|
||||
|
||||
void-kernel:
|
||||
BANGER_RUNTIME_DIR="$(abspath $(RUNTIME_SOURCE_DIR))" ./make-void-kernel.sh
|
||||
BANGER_RUNTIME_DIR="$(abspath $(RUNTIME_SOURCE_DIR))" ./scripts/make-void-kernel.sh
|
||||
|
||||
rootfs-void:
|
||||
BANGER_RUNTIME_DIR="$(abspath $(RUNTIME_SOURCE_DIR))" ./make-rootfs-void.sh
|
||||
BANGER_RUNTIME_DIR="$(abspath $(RUNTIME_SOURCE_DIR))" ./scripts/make-rootfs-void.sh
|
||||
|
||||
void-register: build
|
||||
BANGER_RUNTIME_DIR="$(abspath $(RUNTIME_SOURCE_DIR))" VOID_IMAGE_NAME="$(VOID_IMAGE_NAME)" BANGER_BIN="$(abspath ./banger)" ./register-void-image.sh
|
||||
BANGER_RUNTIME_DIR="$(abspath $(RUNTIME_SOURCE_DIR))" VOID_IMAGE_NAME="$(VOID_IMAGE_NAME)" BANGER_BIN="$(abspath $(BANGER_BIN))" ./scripts/register-void-image.sh
|
||||
|
||||
void-vm: void-register
|
||||
./banger vm create --image "$(VOID_IMAGE_NAME)" --name "$(VOID_VM_NAME)"
|
||||
"$(abspath $(BANGER_BIN))" vm create --image "$(VOID_IMAGE_NAME)" --name "$(VOID_VM_NAME)"
|
||||
|
||||
verify-void: void-register
|
||||
./verify.sh --image "$(VOID_IMAGE_NAME)"
|
||||
BANGER_BIN="$(abspath $(BANGER_BIN))" ./scripts/verify.sh --image "$(VOID_IMAGE_NAME)"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue