version: '3' vars: DEBUG_PORT: 2345 REVEALJS_VERSION: 4.3.0 HIGHLIGHTJS_VERSION: 11.5.0 MERMAID_VERSION: 8.14.0 BINARY_NAME: goveal OUT_DIR: ./out GO_BUILD_ARGS: -ldflags="-w -s" CMD_PACKAGE: github.com/baez90/goveal/cmd/goveal env: CGO_ENABLED: 0 GOBIN: sh: echo "$(pwd)/bin/" tasks: clean: cmds: - rm -f debug {{ .BINARY_NAME }} - rm -rf ./dist {{ .OUT_DIR }} fmt: desc: Run gofumpt against code deps: - gofumpt - goimports sources: - "**/*.go" cmds: - "{{ .GOBIN }}gofumpt -l -w ./" - "{{ .GOBIN }}goimports -w -local github.com/baez90/goveal ./." deps: deps: - download-assets sources: - go.mod - go.sum cmds: - go mod download - go mod tidy -compat=1.17 test: sources: - ./**/*.go deps: - deps - fmt cmds: - mkdir -p {{ .OUT_DIR }} - go test -coverprofile={{ .OUT_DIR }}/cov-raw.out -v ./... - cat {{ .OUT_DIR }}/cov-raw.out | grep -v "generated" > {{ .OUT_DIR }}/cov.out cli-cover-report: deps: - test cmds: - go tool cover -func={{ .OUT_DIR }}/cov.out html-cover-report: deps: - test cmds: - go tool cover -html={{ .OUT_DIR }}/cov.out -o {{ .OUT_DIR }}/coverage.html build: deps: - deps sources: - ./**/*.go cmds: - go build {{ .GO_BUILD_ARGS }} -o {{ .BINARY_NAME }} {{ .CMD_PACKAGE }} run: deps: - deps dir: ./examples cmds: - go run {{ .CMD_PACKAGE }} serve ./slides.md --config ./goveal.yaml debug: cmds: - dlv debug --headless --listen=127.10.10.2:{{ .DEBUG_PORT }} --api-version=2 {{ .CMD_PACKAGE }} --build-flags="-tags debug" -- serve --config ./examples/goveal.yaml ./examples/slides.md snapshot-release: cmds: - goreleaser --snapshot --skip-publish --rm-dist download-assets: sources: - Taskfile.yml cmds: - rm -rf ./assets/reveal - mkdir -p ./assets/reveal ./assets/mermaid - curl -sL https://github.com/hakimel/reveal.js/archive/{{ .REVEALJS_VERSION }}.tar.gz | tar -xvz --strip-components=1 -C ./assets/reveal --wildcards "*.js" --wildcards "*.css" --wildcards "*.html" --wildcards "*.woff" --wildcards "*.ttf" --exclude "test" --exclude "gulpfile.js" --exclude "gruntfile.js" --exclude "demo.html" --exclude "index.html" --exclude "examples/*.html" - mkdir -p ./assets/reveal/plugin/menu ./assets/reveal/plugin/mouse-pointer - git clone https://github.com/denehyg/reveal.js-menu.git ./assets/reveal/plugin/menu - curl -L -o ./assets/reveal/plugin/mouse-pointer/mouse-pointer.js https://raw.githubusercontent.com/caiofcm/plugin-revealjs-mouse-pointer/master/mouse-pointer.js - rm -f ./assets/reveal/plugin/menu/{bower.json,CONTRIBUTING.md,LICENSE,package.json,README.md,.gitignore,gulpfile.js,package-lock.json} - curl -L https://github.com/highlightjs/highlight.js/archive/{{ .HIGHLIGHTJS_VERSION }}.tar.gz | tar -xvz --strip-components=3 -C ./assets/reveal/plugin/highlight --wildcards "*.css" highlight.js-{{ .HIGHLIGHTJS_VERSION }}/src/styles/ - curl -L https://registry.npmjs.org/mermaid/-/mermaid-{{ .MERMAID_VERSION }}.tgz | tar -xvz -C ./assets/mermaid/ package/dist --strip-components=2 - curl -L -o rendering/emoji/emoji.json https://unpkg.com/emojilib@latest go-get-tool: vars: PACKAGE: '{{ default "" .PACKAGE }}' cmds: - go install {{ .PACKAGE }} gofumpt: desc: Download gofumpt locally if necessary cmds: - task: go-get-tool vars: PACKAGE: mvdan.cc/gofumpt@v0.2.0 status: - test -f {{ .GOBIN }}gofumpt goimports: desc: Download goimports locally if necessary cmds: - task: go-get-tool vars: PACKAGE: golang.org/x/tools/cmd/goimports@v0.1.7 status: - test -f {{ .GOBIN }}goimports