gfanton d1e00a6a49 feat: add golangci lint
Signed-off-by: gfanton <8671905+gfanton@users.noreply.github.com>
2022-11-08 18:30:19 +01:00

113 lines
3.1 KiB
YAML

name: Go
on:
push:
tags:
- v*
branches:
- master
pull_request:
jobs:
golangci-lint:
name: "GolangCI-lint"
runs-on: ubuntu-latest
strategy:
matrix:
golang:
- 1.18.x
steps:
- uses: actions/checkout@v3
- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: ${{ matrix.golang }}
- name: golangci-lint
uses: golangci/golangci-lint-action@v3.3.0
with:
go-version: ${{ matrix.golang }}
version: v1.50.1
args: --timeout=10m
go-tests-on-linux:
runs-on: ubuntu-latest
strategy:
matrix:
golang:
- 1.18
- 1.19
env:
OS: ubuntu-latest
GOLANG: ${{ matrix.golang }}
steps:
- name: Checkout
uses: actions/checkout@master
- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: ${{ matrix.golang }}
- name: Cache Go modules
uses: actions/cache@v1
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-${{matrix.golang}}-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-${{matrix.golang}}-
- name: Download modules
run: go mod download
- name: Check go.mod and go.sum
run: |
go mod tidy -v
git --no-pager diff go.mod go.sum
git --no-pager diff --quiet go.mod go.sum
- name: Run tests with race, without goleak
run: go test -race -covermode=atomic -coverpkg=all -coverprofile=coverage.txt -cover -v ./... -test.timeout=10m
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v1
with:
file: ./coverage.txt
flags: unittests
env_vars: OS,GOLANG
name: codecov-umbrella
fail_ci_if_error: false
go-tests-on-macos:
runs-on: macos-latest
strategy:
matrix:
golang:
- 1.18
- 1.19
env:
OS: macos-latest
GOLANG: ${{ matrix.golang }}
steps:
- name: Checkout
uses: actions/checkout@master
- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: ${{ matrix.golang }}
- name: Cache Go modules
uses: actions/cache@v1
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-${{matrix.golang}}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-${{matrix.golang}}-go-
- name: Download modules
run: go mod download
- name: Check go.mod and go.sum
run: |
go mod tidy -v
git --no-pager diff go.mod go.sum
git --no-pager diff --quiet go.mod go.sum
- name: Run tests with race, without goleak
run: go test -race -covermode=atomic -coverpkg=all -coverprofile=coverage.txt -cover -v ./... -test.timeout=10m
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v1
with:
file: ./coverage.txt
flags: unittests
env_vars: OS,GOLANG
name: codecov-umbrella
fail_ci_if_error: false