taskfile

**Taskfile (Task): A Modern Make Alternative** **Overview** Task is a task runner / build tool that aims to be simpler and easier to use than GNU Make. It uses a simple YAML schema (`Taskfile.yml`) instead of the archaic Makefile syntax, making it cross-platform and developer-friendly. **Why Replace Make?** - **Syntax**: YAML is readable; Make's tab-indentation rules are frustrating. - **Cross-Platform**: Works identically on Linux, macOS, and Windows. - **Features**: Built-in support for environment variables, semantic versioning, and conditional execution. **Example `Taskfile.yml`** ```yaml version: '3' tasks: build: desc: Build the application cmds: - go build -o app main.go sources: - ./**/*.go generates: - app run: desc: Run the app deps: [build] cmds: - ./app clean: cmds: - rm -f app ``` **Key Features** **1. Dependencies** Execute tasks in order. `deps: [build]` ensures build runs before run. **2. Checksum / Rebuilding** The `sources` and `generates` keywords allow Task to skip steps if files haven't changed (incremental builds). **3. Variables with Templates** ```yaml vars: GREETING: Hello tasks: greet: cmds: - echo "{{.GREETING}} World" ``` **Installation** ```bash # MacOS brew install go-task/tap/go-task # Linux sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d ``` Run with: `task build` Task allows you to capture operational knowledge (how to build, test, deploy) in a readable file checked into Git.

Go deeper with CFSGPT

Get AI-powered deep-dives, save terms, and run advanced simulations — free account.

Create Free Account