diff --git a/justfile b/justfile new file mode 100644 index 000000000..034a25b4d --- /dev/null +++ b/justfile @@ -0,0 +1,57 @@ +default: + just --list + +# Build lazygit with optimizations disabled (to make debugging easier). +build: + go build -gcflags='all=-N -l' + +install: + go install + +run: build + ./lazygit + +# Run `just debug` in one terminal tab and `just print-log` in another to view the program and its log output side by side +debug: build + ./lazygit -debug + +print-log: build + ./lazygit --logs + +unit-test: + go test ./... -short + +# Run both unit tests and integration tests. +test: unit-test e2e-all + +# Generate all our auto-generated files (test list, cheatsheets, json schema, maybe other things in the future) +generate: + go generate ./... + +format: + gofumpt -l -w . + +lint: + ./scripts/golangci-lint-shim.sh run + +# Run integration tests with a visible UI. Most useful for running a single test; for running all tests, use `e2e-all` instead. +e2e *args: + go run cmd/integration_test/main.go cli {{ args }} + +# Open the TUI for running integration tests. +e2e-tui *args: + go run cmd/integration_test/main.go tui {{ args }} + +# Run all integration tests headlessly (without a visible UI). +e2e-all: + go test pkg/integration/clients/*.go + +bump-gocui: + scripts/bump_gocui.sh + +# Record a demo +demo *args: + demo/record_demo.sh {{ args }} + +vendor: + go mod vendor && go mod tidy