name: CI on: push: branches: [main] pull_request: jobs: lint-go: name: Go 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 lint-makefile: name: Makefile Lint 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/checkmake/checkmake/cmd/checkmake@latest - name: Run mutation tests run: make lint-makefile test-unit: 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 test-fuzz: 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 test-mutation: 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