48 lines
1.2 KiB
YAML
48 lines
1.2 KiB
YAML
name: CI
|
|
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
|
|
format:
|
|
name: Format (gofmt)
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@master
|
|
- uses: actions/setup-go@master
|
|
with:
|
|
go-version: '1.13'
|
|
- name: gofmt
|
|
run: test -z $(gofmt -l .) || (gofmt -d . && exit 1)
|
|
|
|
lint:
|
|
name: Lint (golangci-lint)
|
|
runs-on: ubuntu-latest
|
|
needs: [format]
|
|
steps:
|
|
- uses: actions/checkout@master
|
|
- uses: actions/setup-go@master
|
|
with:
|
|
go-version: '1.13'
|
|
- name: golangci-lint
|
|
run: |
|
|
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s v1.22.2
|
|
./bin/golangci-lint run -v ./...
|
|
|
|
test:
|
|
name: Test (go test)
|
|
runs-on: ubuntu-latest
|
|
needs: [lint]
|
|
steps:
|
|
- uses: actions/checkout@master
|
|
- uses: actions/setup-go@master
|
|
with:
|
|
go-version: '1.13'
|
|
- name: go test
|
|
run: go test -race -coverprofile=coverage.txt ./...
|
|
- name: upload to codecov
|
|
uses: codecov/codecov-action@v1
|
|
with:
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
file: ./coverage.txt
|
|
fail_ci_if_error: true
|