chore(ci): add Makefile, GitHub Actions workflow, and golangci-lint config

This commit is contained in:
2024-03-17 20:51:11 +00:00
parent d16d1083f1
commit b6a215ba99
4 changed files with 365 additions and 0 deletions

73
.github/workflows/ci.yml vendored Normal file
View File

@@ -0,0 +1,73 @@
---
name: CI
on: [push, pull_request]
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: "1.20"
cache: false
- name: golangci-lint
uses: golangci/golangci-lint-action@v4
with:
version: v1.56
env:
VERBOSE: "true"
tidy:
name: Tidy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: "1.20"
- name: Check if mods are tidy
run: make check-tidy
# cov:
# name: Coverage
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# - uses: actions/setup-go@v5
# with:
# go-version: "1.20"
# - name: Publish coverage
# uses: paambaati/codeclimate-action@v5.0.0
# env:
# VERBOSE: "true"
# GOMAXPROCS: 4
# CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
# with:
# coverageCommand: make cov
# prefix: github.com/${{ github.repository }}
# coverageLocations: |
# ${{ github.workspace }}/coverage.out:gocov
test:
name: Test
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- macos-latest
- windows-latest
go_version:
- "1.20"
- "1.21"
- "1.22"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: "1.22"
- name: Run tests
run: go test -v -count=1 -race ./...