#!/bin/sh # script/lint-darwin: type-check (go vet) and lint the code as a macOS # build compiles it, from Linux, in docker only. CI runs on Linux, which # never compiles the files built only for macOS. Builds the lint-darwin # stage of Dockerfile.lint, rebuilt on every run as script/lint does. # # Cgo is off: compiling cgo code for macOS needs Apple's SDK headers. That # leaves out the files built only with cgo on macOS: the keychain unlocker's # calls into the keychain (keychainunlocker_cgo.go, and # keychainunlocker_test.go) and the Secure Enclave bindings (internal/macse). # Nothing on Linux checks those. set -eu ROOT="$(cd "$(dirname "$0")/.." && pwd -P)" main() { cd "$ROOT" docker build \ --progress=plain \ --target lint-darwin \ --no-cache-filter=lint-darwin \ --output=type=cacheonly \ -f Dockerfile.lint . } main "$@"