1
0
mirror of https://blitiri.com.ar/repos/chasquid synced 2025-12-17 14:37:02 +00:00
Files
go-chasquid-smtp/.cirrus.yml
Alberto Bertogli f296bc31a8 cirrus: Allow the testing user to write to $GOPATH
Cirrus CI caches the module directory inside $GOPATH so it can be shared
between test runs, to speed them up.

However, it is currently created as root, which causes new entries to
fail since they run under the "testing" user.

This patch fixes that problem by making the "testing" user own the
entire $GOPATH, which includes the module directory.
2020-05-17 10:02:49 +01:00

75 lines
2.1 KiB
YAML

# Configuration for https://cirrus-ci.org/
env:
GOPROXY: https://proxy.golang.org
# Run go tests under a Linux container.
# 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.
linux_task:
name: Go tests (Linux)
container:
image: golang:latest
modules_cache:
fingerprint_script: cat go.sum
folder: $GOPATH/pkg/mod
get_script: |
useradd --create-home --user-group testing
chown -R testing:testing $GOPATH/
su testing -c "go mod download"
su testing -c "go get ./..."
build_script: |
su testing -c "go build ./..."
test_script: |
su testing -c "go test ./..."
# Run go tests under a FreeBSD VM.
# Same as linux_task, we need to use a separate non-root user.
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.
# SA1019: BuildNameToCertificate deprecation, remove on Go >= 1.14.
text: "SA1015:|SA1019:"
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