diff --git a/Taskfile.yml b/Taskfile.yml new file mode 100644 index 0000000..2bad4ab --- /dev/null +++ b/Taskfile.yml @@ -0,0 +1,59 @@ +version: '3' + +tasks: + test: + desc: Run all tests + cmds: + - go test ./... + + test-verbose: + desc: Run all tests with verbose output + cmds: + - go test -v ./... + + test-coverage: + desc: Run tests with coverage report + cmds: + - go test -coverprofile=coverage.out ./... + - go tool cover -html=coverage.out -o coverage.html + - echo "Coverage report generated at coverage.html" + + build: + desc: Build the application + cmds: + - go build -o bin/converter ./cmd/converter + + run: + desc: "Run the application with parameters (usage: task run -- )" + deps: [build] + cmds: + - "./bin/converter {{.CLI_ARGS}}" + + clean: + desc: Clean build artifacts and coverage files + cmds: + - rm -rf bin/ + - rm -f coverage.out coverage.html + + lint: + desc: Run linter (if available) + cmds: + - go vet ./... + - go fmt ./... + + deps: + desc: Download dependencies + cmds: + - go mod download + - go mod tidy + + generate-mocks: + desc: Generate mocks using mockery + cmds: + - go run github.com/vektra/mockery/v2@latest --name=RateProvider --dir=./app --output=./app/mocks + + all: + desc: Run full build pipeline + deps: [deps, generate-mocks, lint, test, build] + cmds: + - echo "Build pipeline completed successfully!" \ No newline at end of file