check / check (push) Waiting to run
script/lint-darwin (make lint-darwin; run by script/check, and its commands by the Dockerfile lint stage) runs go vet and golangci-lint with GOOS=darwin and cgo off. Compiling cgo for macOS needs Apple's SDK, so the three functions that call go-keychain, which is cgo there, move to keychainunlocker_cgo.go; a macOS build without cgo gets keychainunlocker_nocgo.go and the macse stub, whose errors name the missing macOS build with cgo. The rest of the keychain unlocker and its plain-Go tests are now checked; their findings are fixed without changing behaviour, and lines over 88 columns in the unchecked files are wrapped. Model: opus-5-5
27 lines
888 B
Bash
Executable File
27 lines
888 B
Bash
Executable File
#!/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 "$@"
|