check / check (push) Successful in 3m6s
The Gitea runner has Docker and git but no Go, and the apt path never ran apt-get update, so on a fresh host every install failed. Bootstrap now installs Go 1.26.8, the version in the Dockerfile's golang image, from the release archive at go.dev, checked against a sha256 in the script, into ~/.local/go whenever the go first on PATH reports any other version. script/fmt, script/fmt-check, script/precommit and the Makefile put ~/.local/go/bin first on their PATH so they use it. The apt path runs apt-get update once, before its first install. Model: opus-5-5
51 lines
937 B
Makefile
51 lines
937 B
Makefile
# Makefile targets are thin shims; the implementations live in script/
|
|
# per the scripts-to-rule-them-all pattern. The one exception is build,
|
|
# which needs the version stamped into the binary.
|
|
|
|
VERSION := $(shell git describe --tags --always --dirty 2>/dev/null || echo dev)
|
|
LDFLAGS := -s -w -X 'sneak.berlin/go/keyfunc/internal/cli.Version=$(VERSION)'
|
|
|
|
# Where script/bootstrap installs Go; it cannot put it on our PATH.
|
|
export PATH := $(HOME)/.local/go/bin:$(PATH)
|
|
|
|
.PHONY: default bootstrap setup build test lint fmt fmt-check check \
|
|
docker cibuild hooks clean
|
|
|
|
default: check
|
|
|
|
bootstrap:
|
|
@script/bootstrap
|
|
|
|
setup:
|
|
@script/setup
|
|
|
|
build:
|
|
go build -trimpath -ldflags "$(LDFLAGS)" -o keyfunc ./cmd/keyfunc
|
|
|
|
test:
|
|
@script/test
|
|
|
|
lint:
|
|
@script/lint
|
|
|
|
fmt:
|
|
@script/fmt
|
|
|
|
fmt-check:
|
|
@script/fmt-check
|
|
|
|
check:
|
|
@script/check
|
|
|
|
docker:
|
|
@script/docker
|
|
|
|
cibuild:
|
|
@script/cibuild
|
|
|
|
hooks:
|
|
@script/install-precommit
|
|
|
|
clean:
|
|
rm -f keyfunc
|