name: Tests on: push: branches: [main, develop] pull_request: branches: [main, develop] workflow_dispatch: jobs: test: name: Run Tests runs-on: ubuntu-latest strategy: matrix: go-version: ["1.23.x", "1.24.x"] steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up Go uses: actions/setup-go@v5 with: go-version: ${{ matrix.go-version }} cache: true - name: Display Go version run: go version - name: Download dependencies run: go mod download - name: Verify dependencies run: go mod verify - name: Run go vet run: go vet ./... - name: Run tests run: go test -v -race -coverprofile=coverage.out -covermode=atomic ./... - name: Display test coverage run: go tool cover -func=coverage.out # - name: Upload coverage to Codecov # uses: codecov/codecov-action@v4 # with: # file: ./coverage.out # flags: unittests # name: codecov-umbrella # env: # CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} # continue-on-error: true lint: name: Lint Code runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up Go uses: actions/setup-go@v5 with: go-version: "1.23.x" cache: true - name: Run golangci-lint uses: golangci/golangci-lint-action@v9 with: version: latest args: --timeout=5m build: name: Build runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up Go uses: actions/setup-go@v5 with: go-version: "1.23.x" cache: true - name: Build run: go build -v ./... - name: Check for uncommitted changes run: | if [[ -n $(git status -s) ]]; then echo "Error: Uncommitted changes found after build" git status -s exit 1 fi