diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index 96c08257..dbac7c1e 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -9,6 +9,9 @@ on: jobs: benchmark: + strategy: + matrix: + module: [ '', 'provider/file', 'provider/pflag' ] name: Benchmark runs-on: ubuntu-latest steps: @@ -18,10 +21,14 @@ jobs: go-version: 'stable' cache-dependency-path: "**/go.sum" - name: Benchmark - run: go test -v -shuffle=on -bench=. ./... - - name: Benchmark (file) run: go test -v -bench=. ./... - working-directory: provider/file - - name: Benchmark (pflag) - run: go test -v -shuffle=on -bench=. ./... - working-directory: provider/pflag + working-directory: ${{ matrix.module }} + all: + if: ${{ always() }} + runs-on: ubuntu-latest + name: All Benchmarks + needs: benchmark + steps: + - name: Check benchmark matrix status + if: ${{ needs.benchmark.result != 'success' }} + run: exit 1 diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index e852243d..b2c20d4b 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -9,6 +9,9 @@ on: jobs: coverage: + strategy: + matrix: + module: [ '', 'provider/file', 'provider/pflag' ] name: Coverage runs-on: ubuntu-latest steps: @@ -19,11 +22,4 @@ jobs: cache-dependency-path: "**/go.sum" - name: Coverage run: go test -v -covermode=count -coverprofile=coverage.txt ./... - - name: Coverage (file) - run: go test -v -covermode=count -coverprofile=coverage.txt ./... - working-directory: provider/file - - name: Coverage (pflag) - run: go test -v -covermode=count -coverprofile=coverage.txt ./... - working-directory: provider/pflag - - name: Codecov - uses: codecov/codecov-action@v4 + working-directory: ${{ matrix.module }} diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 4def668f..4a34e8e4 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -9,6 +9,9 @@ on: jobs: lint: + strategy: + matrix: + module: [ '', 'provider/file', 'provider/pflag' ] name: Lint runs-on: ubuntu-latest steps: @@ -19,11 +22,14 @@ jobs: cache-dependency-path: "**/go.sum" - name: Lint uses: golangci/golangci-lint-action@v3 - - name: Lint (file) - uses: golangci/golangci-lint-action@v3 - with: - working-directory: provider/file - - name: Lint (pflag) - uses: golangci/golangci-lint-action@v3 with: - working-directory: provider/pflag + working-directory: ${{ matrix.module }} + all: + if: ${{ always() }} + runs-on: ubuntu-latest + name: All Lints + needs: lint + steps: + - name: Check lint matrix status + if: ${{ needs.lint.result != 'success' }} + run: exit 1 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2d52ebdf..415b358d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -11,6 +11,7 @@ jobs: test: strategy: matrix: + module: [ '', 'provider/file', 'provider/pflag' ] run-on: [ 'ubuntu', 'macOS', 'windows' ] go-version: [ 'stable' ] name: Test @@ -23,20 +24,10 @@ jobs: cache-dependency-path: "**/go.sum" - name: Race Test run: go test -v -shuffle=on -count=10 -race ./... + working-directory: ${{ matrix.module }} - name: Test - run: go test -v -shuffle=on ./... - - name: Race Test (file) - run: go test -v -shuffle=on -count=10 -race ./... - working-directory: provider/file - - name: Test (file) run: go test -v ./... - working-directory: provider/file - - name: Race Test (pflag) - run: go test -v -shuffle=on -count=10 -race ./... - working-directory: provider/pflag - - name: Test (pflag) - run: go test -v -shuffle=on ./... - working-directory: provider/pflag + working-directory: ${{ matrix.module }} all: if: ${{ always() }} runs-on: ubuntu-latest diff --git a/provider/pflag/go.mod b/provider/pflag/go.mod index 2f38ab4e..7248789d 100644 --- a/provider/pflag/go.mod +++ b/provider/pflag/go.mod @@ -1,5 +1,5 @@ module github.com/nil-go/konf/provider/pflag -go 1.19 +go 1.21 require github.com/spf13/pflag v1.0.5