From 3afc5ee66c139290d531ad633da77f436b9cc071 Mon Sep 17 00:00:00 2001 From: onyx-and-iris Date: Mon, 3 Feb 2025 18:34:22 +0000 Subject: [PATCH] add taskfile --- Taskfile.yml | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ makefile | 12 ++++++------ 2 files changed, 57 insertions(+), 6 deletions(-) create mode 100644 Taskfile.yml diff --git a/Taskfile.yml b/Taskfile.yml new file mode 100644 index 0000000..b6989f4 --- /dev/null +++ b/Taskfile.yml @@ -0,0 +1,51 @@ +version: '3' + +vars: + PROGRAM: vbantxt + SHELL: '{{if eq .OS "Windows_NT"}}powershell{{end}}' + BIN_DIR: bin + + WINDOWS: '{{.BIN_DIR}}/{{.PROGRAM}}_windows_amd64.exe' + LINUX: '{{.BIN_DIR}}/{{.PROGRAM}}_linux_amd64' + GIT_COMMIT: + sh: git log -n 1 --format=%h + +tasks: + default: + desc: "Build the vbantxt project" + deps: [build] + + build: + desc: "Build the vbantxt project" + deps: [vet, build-windows, build-linux] + + vet: + desc: "Vet the code" + deps: [fmt] + cmds: + - go vet ./... + + fmt: + desc: "Fmt the code" + cmds: + - go fmt ./... + + build-windows: + desc: "Build the vbantxt project for Windows" + cmds: + - GOOS=windows GOARCH=amd64 go build -o {{.WINDOWS}} -ldflags="-X main.Version={{.GIT_COMMIT}}" ./cmd/{{.PROGRAM}}/ + + build-linux: + desc: "Build the vbantxt project for Linux" + cmds: + - GOOS=linux GOARCH=amd64 go build -o {{.LINUX}} -ldflags="-X main.Version={{.GIT_COMMIT}}" ./cmd/{{.PROGRAM}}/ + + test: + desc: "Run tests" + cmds: + - go test ./... + + clean: + desc: "Clean the build artifacts" + cmds: + - '{{.SHELL}} rm -r {{.BIN_DIR}}' \ No newline at end of file diff --git a/makefile b/makefile index 856a6f0..4b92ab7 100644 --- a/makefile +++ b/makefile @@ -1,11 +1,11 @@ -program = vbantxt +PROGRAM = vbantxt GO = go BIN_DIR := bin -WINDOWS=$(BIN_DIR)/$(program)_windows_amd64.exe -LINUX=$(BIN_DIR)/$(program)_linux_amd64 -VERSION=$(shell git describe --tags --always --long --dirty) +WINDOWS=$(BIN_DIR)/$(PROGRAM)_windows_amd64.exe +LINUX=$(BIN_DIR)/$(PROGRAM)_linux_amd64 +VERSION=$(shell git log -n 1 --format=%h) .DEFAULT_GOAL := build @@ -25,10 +25,10 @@ linux: $(LINUX) $(WINDOWS): - env GOOS=windows GOARCH=amd64 go build -v -o $(WINDOWS) -ldflags="-s -w -X main.version=$(VERSION)" ./cmd/vbantxt/ + env GOOS=windows GOARCH=amd64 go build -v -o $(WINDOWS) -ldflags="-s -w -X main.version=$(VERSION)" ./cmd/$(PROGRAM)/ $(LINUX): - env GOOS=linux GOARCH=amd64 go build -v -o $(LINUX) -ldflags="-s -w -X main.version=$(VERSION)" ./cmd/vbantxt/ + env GOOS=linux GOARCH=amd64 go build -v -o $(LINUX) -ldflags="-s -w -X main.version=$(VERSION)" ./cmd/$(PROGRAM)/ test: $(GO) test ./...