name: CI on: push: branches: [main] pull_request: jobs: lint: name: Golang Lint runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version-file: go.mod - name: Check go mod tidy run: go mod tidy && git diff --exit-code go.mod go.sum - uses: golangci/golangci-lint-action@v7 with: version: latest unit-test: name: Unit Tests runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version-file: go.mod - name: Run unit tests run: make test-unit fuzz-test: name: Fuzz Tests runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version-file: go.mod - name: Run fuzz tests run: make test-fuzz mutation-test: name: Mutation Tests runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version-file: go.mod - name: Install gremlins run: go install github.com/go-gremlins/gremlins/cmd/gremlins@latest - name: Run mutation tests run: make test-mutation