All checks were successful
ci/woodpecker/push/lint Pipeline was successful
Signed-off-by: Nikolai Rodionov <allanger@badhouseplants.net>
77 lines
1.7 KiB
YAML
77 lines
1.7 KiB
YAML
# yaml-language-server: $schema=https://taskfile.dev/schema.json
|
|
|
|
version: "3"
|
|
|
|
vars:
|
|
LOCALBIN:
|
|
sh: echo "$(pwd)/bin"
|
|
CONTAINER_TOOL: '{{.CONTAINER_TOOL | default "podman"}}'
|
|
# Tools
|
|
PROTODOC: "{{.LOCALBIN}}/protodoc"
|
|
PROTOLINT: "{{.LOCALBIN}}/protolint"
|
|
tasks:
|
|
lint:
|
|
desc: Run linter in a container
|
|
deps:
|
|
- protolint
|
|
cmd: '"{{.PROTOLINT}}" lint $(find . -type f -iname "*.proto")'
|
|
|
|
gen-docs:
|
|
desc: Generate docs in a container
|
|
deps:
|
|
- protodoc
|
|
cmd: '"{{.PROTODOC}}" --doc_opt=markdown,README.md'
|
|
|
|
# Install required tools
|
|
localbin:
|
|
desc: Create local bin directory
|
|
silent: true
|
|
cmds:
|
|
- mkdir -p "{{.LOCALBIN}}"
|
|
|
|
protodoc:
|
|
desc: Install protodoc
|
|
silent: true
|
|
deps:
|
|
- localbin
|
|
cmds:
|
|
- task: go-install-tool
|
|
vars:
|
|
TARGET: "{{.PROTODOC}}"
|
|
PACKAGE: go.etcd.io/protodoc
|
|
VERSION: "latest"
|
|
|
|
protolint:
|
|
desc: Install protolint
|
|
silent: true
|
|
deps:
|
|
- localbin
|
|
cmds:
|
|
- task: go-install-tool
|
|
vars:
|
|
TARGET: "{{.PROTOLINT}}"
|
|
PACKAGE: github.com/yoheimuta/protolint/cmd/protolint
|
|
VERSION: "latest"
|
|
|
|
go-install-tool:
|
|
internal: true
|
|
silent: true
|
|
cmd: |-
|
|
set -e
|
|
TARGET="{{.TARGET}}"
|
|
PACKAGE="{{.PACKAGE}}@{{.VERSION}}"
|
|
VERSIONED="${TARGET}-{{.VERSION}}"
|
|
|
|
if [ -f "$VERSIONED" ] && [ "$(readlink -- "$TARGET" 2>/dev/null)" = "$VERSIONED" ]; then
|
|
echo "$PACKAGE already installed"
|
|
exit 0
|
|
fi
|
|
|
|
echo "Downloading $PACKAGE"
|
|
rm -f "$TARGET"
|
|
|
|
GOBIN="{{.LOCALBIN}}" go install "$PACKAGE"
|
|
|
|
mv "{{.LOCALBIN}}/$(basename "$TARGET")" "$VERSIONED"
|
|
ln -sf "$(realpath "$VERSIONED")" "$TARGET"
|