--- version: "3" vars: VERSION: sh: scripts/version_generator.sh BRANCH: sh: git rev-parse --abbrev-ref HEAD COMMIT: sh: git rev-parse --short HEAD BUILD: sh: git rev-list --count HEAD BUILD_DATE: sh: TZ=UTC date +'%Y-%m-%d %H:%M:%S %Z' BASIC_LDFLAGS: "-X 'go.dev.pztrn.name/vikunja-notifier/internal/commons.Version={{.VERSION}}' -X 'go.dev.pztrn.name/vikunja-notifier/internal/commons.Branch={{.BRANCH}}' -X 'go.dev.pztrn.name/vikunja-notifier/internal/commons.Commit={{.COMMIT}}' -X 'go.dev.pztrn.name/vikunja-notifier/internal/commons.Build={{.BUILD}}' -X 'go.dev.pztrn.name/vikunja-notifier/internal/commons.BuildDate={{.BUILD_DATE}}'" env: GOFLAGS: "-trimpath" includes: deployments: ./deployments tasks: build: desc: "Builds vikunja-notifier binary." cmds: - task: ensure-builddir - task: cleanup - go build -ldflags="{{ .BASIC_LDFLAGS }}" -o _build/vikunja-notifier{{exeExt}} main.go sources: - ./Taskfile.yml - ./go.mod - ./main.go - ./internal/* generates: - ./_build/vikunja-notifier{{exeExt}} method: timestamp build-debug: desc: "Builds vikunja-notifier binary." cmds: - task: ensure-builddir - task: cleanup - go build -ldflags="{{ .BASIC_LDFLAGS }}" --gcflags "all=-N -l" -o _build/vikunja-notifier{{exeExt}} main.go sources: - ./Taskfile.yml - ./go.mod - ./main.go - ./internal/* generates: - ./_build/vikunja-notifier{{exeExt}} method: timestamp cleanup: desc: "Cleanup _build directory." cmds: - rm _build/* || exit 0 ensure-builddir: internal: true cmds: - mkdir -p _build lint: desc: "Lints whole workspace." cmds: - golangci-lint run test: desc: "Test whole workspace" cmds: - go test -test.v ./...