gignore/Taskfile.yaml
onyx-and-iris 7ada4e9328
Some checks are pending
CI / Lint (push) Waiting to run
remove the done channel
add prune task to Taskfile
2025-03-12 21:03:52 +00:00

72 lines
1.5 KiB
YAML

version: '3'
vars:
PROGRAM: gignore
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 gignore project
cmds:
- task: build
build:
desc: Build the gignore project
deps: [vet]
cmds:
- task: build-windows
- task: build-linux
vet:
desc: Vet the code
deps: [fmt]
cmds:
- go vet ./...
fmt:
desc: Fmt the code
cmds:
- go fmt ./...
generate:
desc: Generate the gitignore.io templates
cmds:
- go generate ./...
build-windows:
desc: Build the gignore 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 gignore 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 ./...
install:
desc: Install the gignore project
deps: [generate]
cmds:
- go install ./cmd/{{.PROGRAM}}
clean:
desc: Clean the build artifacts
cmds:
- '{{.SHELL}} rm -r {{.BIN_DIR}}'
prune:
desc: Empty the gitignoreio template registry
cmds:
- '{{.SHELL}} rm internal/registry/templates/gitignoreio/*.gitignore'