1
mirror of https://github.com/asdf-vm/asdf.git synced 2024-12-29 14:21:02 -07:00
asdf/Makefile
DeedleFake 27f44a2dc9 feat(golang-rewrite): rename module and move main pacakge to cmd/asdf
* Replace direct `fmt.Println()` usage in a test with `t.Log()`
* Rename `cmd` to `cli`
* Move asdf command from module root
* Fix some linter warnings, thus enabling some tests that were being skipped
* Fix `Makefile`
* Rename module to `github.com/asdf-vm/asdf`
* Fix `TestGetAllToolsAndVersionsInContent/returns_empty_list_with_found_true_and_no_error_when_empty_content`
* Rewrite `Unique()` to be a bit more straightforwards
* Get workflow checks passing again

toolversions.Unique is ever so slightly faster, technically.

```
goos: linux
goarch: amd64
pkg: github.com/asdf-vm/asdf/internal/toolversions
cpu: AMD Ryzen 9 3900X 12-Core Processor
          │ /tmp/old.txt │            /tmp/new.txt            │
          │    sec/op    │   sec/op     vs base               │
Unique-24    346.5n ± 1%   342.4n ± 1%  -1.17% (p=0.027 n=10)

          │ /tmp/old.txt │          /tmp/new.txt          │
          │     B/op     │    B/op     vs base            │
Unique-24     160.0 ± 0%   160.0 ± 0%  ~ (p=1.000 n=10) ¹
¹ all samples are equal

          │ /tmp/old.txt │          /tmp/new.txt          │
          │  allocs/op   │ allocs/op   vs base            │
Unique-24     3.000 ± 0%   3.000 ± 0%  ~ (p=1.000 n=10) ¹
¹ all samples are equal
```
2024-12-18 10:22:06 -05:00

40 lines
733 B
Makefile

MAIN_PACKAGE_PATH := ./cmd/asdf
TARGET_DIR := .
TARGET := asdf
FULL_VERSION = $(shell ./scripts/asdf-version )
LINKER_FLAGS = '-s -X main.version=${FULL_VERSION}'
# Not sure what the default location should be for builds
build: # test lint
go build -ldflags=${LINKER_FLAGS} -o=${TARGET_DIR}/${TARGET} ${MAIN_PACKAGE_PATH}
fmt:
go fmt ./...
gofumpt -l -w .
verify:
go mod verify
tidy:
go mod tidy -v
audit: verify vet test
test:
go test -coverprofile=/tmp/coverage.out -bench= -race ./...
cover: test
go tool cover -html=/tmp/coverage.out
lint: fmt
staticcheck -tests -show-ignored ./...
revive -set_exit_status ./...
vet: fmt
go vet ./...
run: build
${TARGET_DIR}/${TARGET}
.PHONY: fmt lint vet build test run