check / check (push) Successful in 3m42s
The build no longer downloads Alpine.js. Its npm package tarball is committed as 3p/alpinejs-3.14.9.tgz; its sha256 matches the value script/fetch-assets pinned, and the cdn.min.js inside it matches the value static/vendor.sha256 pinned. make assets extracts package/dist/cdn.min.js to the ignored static/js/alpine.min.js. make test, check, build and dev run it first, and the Dockerfile builds through make test and make build. script/fetch-assets, its Dockerfile step, static/vendor.sha256 and static/vendor_test.go are removed, along with bootstrap's curl install. Model: opus-5-5
78 lines
1.9 KiB
Makefile
78 lines
1.9 KiB
Makefile
.PHONY: bootstrap setup assets test lint fmt fmt-check check build run dev deps docker clean hooks css version
|
|
|
|
# Default target
|
|
.DEFAULT_GOAL := check
|
|
|
|
# Version stamped into the binary. Derived from git by script/version;
|
|
# override it (`make build VERSION=v1.2.3`) where git metadata is
|
|
# unavailable, which is how the Dockerfile passes its build arg in.
|
|
VERSION ?= $(shell script/version)
|
|
|
|
# An empty override (`make build VERSION=`, or a `--build-arg VERSION=`
|
|
# landing on the Dockerfile's `make build VERSION="$VERSION"`) means unset,
|
|
# exactly as it does in script/version -- stamping "" would leave the binary
|
|
# reporting no version and the footer back on its "dev" fallback. `override`
|
|
# is required: a plain assignment loses to the command-line definition it
|
|
# exists to correct.
|
|
override VERSION := $(or $(strip $(VERSION)),$(shell script/version))
|
|
|
|
# Extra linker flags for the build target. The static relink in the
|
|
# Dockerfile adds -extldflags here rather than passing its own -ldflags,
|
|
# so composing flags cannot drop the version stamp.
|
|
GO_LDFLAGS ?=
|
|
|
|
bootstrap:
|
|
@script/bootstrap
|
|
|
|
setup:
|
|
@script/setup
|
|
|
|
# Alpine.js is committed as its npm package tarball in 3p/. This extracts
|
|
# the browser build from it to where go:embed reads it; the extracted file
|
|
# is not committed.
|
|
assets:
|
|
tar -xzOf 3p/alpinejs-3.14.9.tgz package/dist/cdn.min.js >static/js/alpine.min.js
|
|
|
|
test: assets
|
|
@script/test
|
|
|
|
lint:
|
|
@script/lint
|
|
|
|
fmt:
|
|
@script/fmt
|
|
|
|
fmt-check:
|
|
@script/fmt-check
|
|
|
|
check: assets
|
|
@script/check
|
|
|
|
build: assets
|
|
go build -ldflags '$(strip -X main.version=$(VERSION) $(GO_LDFLAGS))' -o bin/webhooker ./cmd/webhooker
|
|
|
|
run: build
|
|
./bin/webhooker
|
|
|
|
dev: assets
|
|
go run ./cmd/webhooker
|
|
|
|
deps:
|
|
go mod download
|
|
go mod tidy
|
|
|
|
version:
|
|
@echo $(VERSION)
|
|
|
|
docker:
|
|
@script/docker
|
|
|
|
clean:
|
|
rm -rf bin/
|
|
|
|
hooks:
|
|
@script/install-precommit
|
|
|
|
css:
|
|
tailwindcss -i static/css/input.css -o static/css/tailwind.css --minify
|