1
1
Fork 0
mirror of https://github.com/goreleaser/nfpm synced 2024-05-04 15:06:19 +02:00
nfpm/Taskfile.yml
Carlos A Becker 0decc7251f
chore(ci): tasks
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2021-10-12 16:41:32 -03:00

134 lines
3.4 KiB
YAML

# https://taskfile.dev
version: '3'
env:
GO111MODULE: on
GOPROXY: https://proxy.golang.org,direct
DOCKER_BUILDKIT: 1
vars:
DOCKER: '{{default "docker" .DOCKER}}'
tasks:
dev:
desc: Setup git hooks
cmds:
- git config core.hooksPath .githooks
setup:
desc: Install dependencies
cmds:
- go mod tidy
build:
desc: Build the binary
sources:
- ./**/*.go
generates:
- ./nfpm
cmds:
- go build
acceptance:pull:
desc: Pull acceptance test images
vars:
IMGS:
sh: grep FROM ./testdata/acceptance/*.dockerfile | cut -f2 -d' ' | grep -v min | grep -v test | sort | uniq
cmds:
- echo "{{.IMGS}}" | while read -r img; do docker pull $img; done
acceptance:
desc: Run acceptance tests
deps:
- acceptance:pull
env:
LC_ALL: C
vars:
TEST_PATTERN: '{{default "." .TEST_PATTERN}}'
cmds:
- go test -tags=acceptance -p 4 -failfast -race -coverpkg=./... -covermode=atomic -coverprofile=coverage.txt acceptance_test.go -run {{.TEST_PATTERN}} -timeout=1h
test:
desc: Run unit tests
env:
LC_ALL: C
vars:
TEST_OPTIONS: '{{default "" .TEST_OPTIONS}}'
SOURCE_FILES: '{{default "./..." .SOURCE_FILES}}'
TEST_PATTERN: '{{default "." .TEST_PATTERN}}'
cmds:
- go test {{.TEST_OPTIONS}} -failfast -race -coverpkg=./... -covermode=atomic -coverprofile=coverage.txt {{.SOURCE_FILES}} -run {{.TEST_PATTERN}} -timeout=5m
cover:
desc: Open the cover tool
cmds:
- go tool cover -html=coverage.txt
fmt:
desc: gofumpt all code
cmds:
- gofumpt -w -l -s .
ci:
desc: Run all CI steps
cmds:
- task: setup
- task: build
- task: test
- task: acceptance
default:
desc: Runs the default tasks
cmds:
- task: ci
docs:generate:
desc: Generate docs
cmds:
- ./scripts/cmd_docs.sh
sources:
- cmd/*.go
- ./scripts/cmd_docs.sh
- CONTRIBUTING.md
generates:
- www/docs/cmd/*.md
- www/docs/contributing.md
docs:imgs:
desc: Download and resize images
cmds:
- wget -O www/docs/static/logo.png https://github.com/goreleaser/artwork/raw/master/goreleaserfundo.png
- wget -O www/docs/static/card.png "https://og.caarlos0.dev/**GoReleaser**%20%7C%20Deliver%20Go%20binaries%20as%20fast%20and%20easily%20as%20possible.png?theme=light&md=1&fontSize=80px&images=https://github.com/goreleaser.png"
- wget -O www/docs/static/avatar.png https://github.com/goreleaser.png
- convert www/docs/static/avatar.png -define icon:auto-resize=64,48,32,16 www/docs/static/favicon.ico
- convert www/docs/static/avatar.png -resize x120 www/docs/static/apple-touch-icon.png
docs:serve:
desc: Start documentation server
cmds:
- task: docs:generate
- '{{.DOCKER}} run --rm -it -p 8000:8000 -v ${PWD}/www:/docs docker.io/squidfunk/mkdocs-material'
docs:build:
desc: Build docs
cmds:
- task: docs:generate
- '{{.DOCKER}} run --rm -v ${PWD}/www:/docs docker.io/squidfunk/mkdocs-material build'
docs:vercel:build:
desc: Build documentation for deploying to Vercel
cmds:
- scripts/vercel/install.sh
- scripts/vercel/build.sh
release:
desc: Create a new tag
vars:
NEXT:
sh: svu n
cmds:
- git tag {{.NEXT}}
- echo {{.NEXT}}
- git push origin --tags