Something went wrong. Try again.
Personal fork of github.com/charmbracelet/crush for experimentation
Something went wrong. Try again.
crush-fork Taskfile.yaml
3.0 kB · 125 lines
YAML
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126# https://taskfile.dev
version: "3"
vars: VERSION: sh: git describe --long 2>/dev/null || echo ""
env: CGO_ENABLED: 0 GOEXPERIMENT: greenteagc
tasks: lint:install: desc: Install golangci-lint cmds: - go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@latest env: GOTOOLCHAIN: go1.25.0
lint: desc: Run base linters cmds: - golangci-lint run --path-mode=abs --config=".golangci.yml" --timeout=5m env: GOEXPERIMENT: null
lint:fix: desc: Run base linters and fix issues cmds: - golangci-lint run --path-mode=abs --config=".golangci.yml" --timeout=5m --fix env: GOEXPERIMENT: null
build: desc: Run build vars: LDFLAGS: '{{if .VERSION}}-ldflags="-X github.com/charmbracelet/crush/internal/version.Version={{.VERSION}}"{{end}}' cmds: - go build {{.LDFLAGS}} . generates: - crush
run: desc: Run build cmds: - go run . {{.CLI_ARGS}}
test: desc: Run tests cmds: - go test ./... {{.CLI_ARGS}}
test:record: desc: Run tests and record all VCR cassettes again aliases: [record] cmds: - rm -r internal/agent/testdata - go test -v -count=1 -timeout=1h ./internal/agent
fmt: desc: Run gofumpt cmds: - gofumpt -w .
dev: desc: Run with profiling enabled env: CRUSH_PROFILE: true cmds: - go run .
install: desc: Install the application vars: LDFLAGS: '{{if .VERSION}}-ldflags="-X github.com/charmbracelet/crush/internal/version.Version={{.VERSION}}"{{end}}' cmds: - task: fetch-tags - go install {{.LDFLAGS}} -v .
profile:cpu: desc: 10s CPU profile cmds: - go tool pprof -http :6061 'http://localhost:6060/debug/pprof/profile?seconds=10'
profile:heap: desc: Heap profile cmds: - go tool pprof -http :6061 'http://localhost:6060/debug/pprof/heap'
profile:allocs: desc: Allocations profile cmds: - go tool pprof -http :6061 'http://localhost:6060/debug/pprof/allocs'
schema: desc: Generate JSON schema for configuration cmds: - go run main.go schema > schema.json - echo "Generated schema.json" generates: - schema.json
release: desc: Create and push a new tag following semver vars: NEXT: sh: svu next --always || go run github.com/caarlos0/svu/v3@latest next --always prompt: "This will release {{.NEXT}}. Continue?" preconditions: - sh: '[ $(git symbolic-ref --short HEAD) = "main" ]' msg: Not on main branch - sh: "[ $(git status --porcelain=2 | wc -l) = 0 ]" msg: "Git is dirty" cmds: - task: fetch-tags - git commit --allow-empty -m "{{.NEXT}}" - git tag --annotate --sign -m "{{.NEXT}}" {{.NEXT}} {{.CLI_ARGS}} - echo "Pushing {{.NEXT}}..." - git push origin main --follow-tags
fetch-tags: cmds: - git tag -d nightly || true - git fetch --tags