Commit d60c03f4 authored by Alberto Bertogli's avatar Alberto Bertogli

tests: Add Cirrus CI integration

This patch adds a configuration for https://cirrus-ci.org/, which
includes running the Go tests on FreeBSD.
parent 2e1e1883
# 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
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
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
......@@ -10,7 +10,8 @@ It's written in [Go](https://golang.org), and distributed under the
[Apache license 2.0](http://en.wikipedia.org/wiki/Apache_License).
[![Travis-CI status](https://travis-ci.org/albertito/chasquid.svg?branch=master)](https://travis-ci.org/albertito/chasquid)
[![Gitlab CI status](https://gitlab.com/albertito/chasquid/badges/master/pipeline.svg)](https://gitlab.com/albertito/chasquid/pipelines)
[![Cirrus-CI Status](https://api.cirrus-ci.com/github/albertito/chasquid.svg?branch=next)](https://cirrus-ci.com/github/albertito/chasquid)
[![Gitlab CI status](https://gitlab.com/albertito/chasquid/badges/master/pipeline.svg)](https://gitlab.com/albertito/chasquid/pipelines)\
[![Go Report Card](https://goreportcard.com/badge/github.com/albertito/chasquid)](https://goreportcard.com/report/github.com/albertito/chasquid)
[![Coverage](https://img.shields.io/badge/coverage-next-brightgreen.svg)](https://blitiri.com.ar/p/chasquid/coverage.html)
[![Docs](https://img.shields.io/badge/docs-reference-blue.svg)](https://blitiri.com.ar/p/chasquid/docs/)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment