#!/bin/sh # script/lint: run the linter, in docker only. Builds Dockerfile.lint, # where golangci-lint runs as a build step. # # A cached build lints nothing, so --no-cache-filter rebuilds the lint # stage on every run, an unchanged tree included. It ignores a stage name # that does not exist, so --target names the same stage: a rename then # fails the build instead of serving the lint from cache. cacheonly keeps # no image; only the build's success matters. set -eu ROOT="$(cd "$(dirname "$0")/.." && pwd -P)" main() { cd "$ROOT" docker build \ --progress=plain \ --target lint \ --no-cache-filter=lint \ --output=type=cacheonly \ -f Dockerfile.lint . } main "$@"