diff --git a/.github/workflows/go-coverage.yml b/.github/workflows/go-coverage.yml new file mode 100644 index 0000000..5816484 --- /dev/null +++ b/.github/workflows/go-coverage.yml @@ -0,0 +1,42 @@ +name: Coverage + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + workflow_dispatch: + +jobs: + coverage: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v5 + with: + fetch-depth: '0' + + - name: Set up Go + uses: actions/setup-go@v6 + with: + go-version: 1.24 + cache: 'true' + + - name: Build + run: go install + + - name: Test + run: | + go test -v -cover ./... -coverprofile coverage.out -coverpkg ./... + go tool cover -func coverage.out -o coverage.out # Replaces coverage.out with the analysis of coverage.out + + - name: Go Coverage Badge + uses: tj-actions/coverage-badge-go@v3 + with: + green: 80 + filename: coverage.out + + - uses: stefanzweifel/git-auto-commit-action@v6 + id: auto-commit-action + with: + commit_message: Apply Code Coverage Badge + file_pattern: ./README.md diff --git a/README.md b/README.md index 7f8fafe..b13575d 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,11 @@ # envconfig -A small, -dependency-free Go library for loading configuration from environment variables directly into your structs. [![Go Reference](https://pkg.go.dev/badge/github.com/struct0x/envconfig.svg)](https://pkg.go.dev/github.com/struct0x/envconfig) [![Go Report Card](https://goreportcard.com/badge/github.com/struct0x/envconfig)](https://goreportcard.com/report/github.com/struct0x/envconfig) +![Coverage](https://img.shields.io/badge/Coverage-87.6%25-brightgreen) + +A small, +dependency-free Go library for loading configuration from environment variables directly into your structs. It supports nested structs, prefixes, defaults, required fields, slices, maps, arrays, pointers, durations, and custom (un)marshalers.