# Configuration for https://cirrus-ci.org/
env:
GOPROXY: https://proxy.golang.org
# Run go tests under a FreeBSD VM.
# Note that by default it is run as root, which causes the tests to fail since
# they expect to get permission denied on some cases, so we create a separate
# user and use that instead.
freebsd_task:
name: Go tests (FreeBSD)
freebsd_instance:
image_family: freebsd-13-0-snap
install_script: |
pkg install -y lang/go
pw useradd testing -m
test_script: |
su testing -c "go test ./..."
# GolangCI linter.
lint_task:
name: GolangCI Lint
container:
image: golangci/golangci-lint:latest
environment:
LINT_CONFIG: |
issues:
exclude:
- "Error return value of .(.*Errorf?). is not checked"
- "Error return value of .(.*SetDeadline). is not checked"
- "Error return value of .(.*ListenAndServe). is not checked"
exclude-rules:
- path: _test\.go
linters:
- errcheck
- linters:
- staticcheck
# SA1015: time.Tick leaks but it's ok on endless functions.
text: "SA1015:"
exclude-use-default: true
lint_config_file:
path: /tmp/lint.yml
variable_name: LINT_CONFIG
run_script: |
golangci-lint run -v --out-format json \
-c /tmp/lint.yml \
> lint-report.json
always:
golangci_artifacts:
path: lint-report.json
type: text/json
format: golangci