goveal/Taskfile.yml

128 lines
3.8 KiB
YAML

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
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