add taskfile

This commit is contained in:
onyx-and-iris 2025-02-03 18:34:22 +00:00
parent 99b630dd47
commit 3afc5ee66c
2 changed files with 57 additions and 6 deletions

51
Taskfile.yml Normal file
View File

@ -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}}'

View File

@ -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 ./...