Phase 0: project scaffold and build pipeline
Go module (codeberg.org/mix/selfpost), two command skeletons (panel, selfpost-backup) sharing internal/buildinfo for the -ldflags version stamp, Makefile (static CGO_ENABLED=0 build), AGPL-3.0 LICENSE, README skeleton and .gitattributes forcing LF (container scripts must not get CRLF). Verified on the dev server: go vet clean, make build produces statically linked binaries, version stamping works. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
# SelfPost build.
|
||||
#
|
||||
# The version is stamped into both binaries and MUST match the Docker image tag
|
||||
# (spec 7.5.A: backup/restore compatibility check). Override on the command line:
|
||||
#
|
||||
# make build VERSION=1.3.0
|
||||
#
|
||||
# CGO is disabled to keep the binaries fully static (modernc.org/sqlite is pure
|
||||
# Go, so no cgo is required) — see spec 7.1.
|
||||
|
||||
VERSION ?= dev
|
||||
MODULE := codeberg.org/mix/selfpost
|
||||
LDFLAGS := -X $(MODULE)/internal/buildinfo.Version=$(VERSION)
|
||||
GOFLAGS := -trimpath
|
||||
|
||||
.PHONY: all build vet test clean
|
||||
|
||||
all: vet build
|
||||
|
||||
build:
|
||||
CGO_ENABLED=0 go build $(GOFLAGS) -ldflags "$(LDFLAGS)" -o bin/panel ./cmd/panel
|
||||
CGO_ENABLED=0 go build $(GOFLAGS) -ldflags "$(LDFLAGS)" -o bin/selfpost-backup ./cmd/selfpost-backup
|
||||
|
||||
vet:
|
||||
go vet ./...
|
||||
|
||||
test:
|
||||
go test ./...
|
||||
|
||||
clean:
|
||||
rm -rf bin
|
||||
Reference in New Issue
Block a user