M0: repo scaffolding, CI pipelines, and Go skeleton #1
Reference in New Issue
Block a user
Delete Branch "dev"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes Fable milestone M0 (project 12, milestone 25). Lands the initial repo setup so that every subsequent server PR can rely on lint + tests gating in CI and a known
go run ./cmd/minstrelbaseline.Summary
docs/, README pointing at server-first workflow, MIT license, Go.gitignore..forgejo/workflows/test.ymlrunsgo vet+golangci-lint run+go test -short -race ./...on push todevand PRs intomainagainst thego-cirunner label..forgejo/workflows/release.ymlbuilds the Docker image and pushes:mainon merges tomainand:v*on version tags. No Postgres service in CI — integration tests gate ontesting.Short()and run locally viadocker-compose.git.fabledsword.com/bvandeusen/minstrel,cmd/minstrel/main.gowith flag/env config, slog init, chi router +/healthz, graceful shutdown.internal/configloads YAML withSMARTMUSIC_*env overlay per spec §10.internal/dbembeds a placeholder migration and stubsMigrate()— goose lands in M2 alongside Postgres work to keep the Go toolchain on 1.23.Dockerfile(golang:1.23-bookworm→debian:bookworm-slim+ ffmpeg per spec §3), non-root user.docker-compose.ymlbrings up Postgres 16 for integration tests without complicating CI..golangci.ymlenables errcheck, govet, ineffassign, staticcheck, unused, gofmt, goimports, revive (var-naming + unused-parameter + early-return only;exporteddeliberately off so we don't have to boilerplate doc comments on every exported symbol).Test plan
go build ./...clean locally on Go 1.26 and inside thego-cirunner image (Go 1.23.12)go vet ./...cleangolangci-lint run ./...clean inside runner imagego test -short -race ./...— config, db (stub), server packages all greengo run ./cmd/minstrelstarts on:4533(override viaSMARTMUSIC_SERVER_ADDRESS), logs startup, returns200 {"status":"ok"}on/healthz, shuts down cleanly on SIGINTgit.fabledsword.com/bvandeusen/minstrel:main(closes Fable task 281)pull_requesttrigger) appears green againstmainFollow-ups (not in this PR)