diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 1d9d059..f0eceac 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -30,24 +30,6 @@ jobs: with: go-version: ${{ matrix.go_version }} - - name: Revive check - uses: morphy2k/revive-action@v2.5.6 - with: - # Exclude patterns, separated by semicolons (optional) - exclude: "./_examples/..." - - - name: Run static check - uses: reviewdog/action-staticcheck@v1 - if: ${{ github.event_name == 'pull_request'}} - with: - github_token: ${{ secrets.github_token }} - # Change reviewdog reporter if you need [github-pr-check,github-check,github-pr-review]. - reporter: github-pr-check - # Report all results. [added,diff_context,file,nofilter]. - filter_mode: added - # Exit with 1 when it find at least one finding. - fail_on_error: true - - name: Run unit tests # run: go test -v -cover ./... # must add " for profile.cov on windows OS diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..e238439 --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,46 @@ +name: CodeCheck +on: + pull_request: + paths: + - 'go.mod' + - '**.go' + - '**.yml' + push: + paths: + - '**.go' + - 'go.mod' + - '**.yml' + +jobs: + + test: + name: Code linter + runs-on: ubuntu-latest + + steps: + - name: Check out code + uses: actions/checkout@v4 + + - name: Setup Go Faster + uses: WillAbides/setup-go-faster@v1.13.0 + timeout-minutes: 3 + with: + go-version: * + + - name: Revive lint check + uses: docker://morphy/revive-action:v2.5.5 + with: + # Exclude patterns, separated by semicolons (optional) + exclude: "./_examples/...;./testdata/..." + + - name: Run static check + uses: reviewdog/action-staticcheck@v1 + if: ${{ github.event_name == 'pull_request'}} + with: + github_token: ${{ secrets.github_token }} + # Change reviewdog reporter if you need [github-pr-check,github-check,github-pr-review]. + reporter: github-pr-check + # Report all results. [added,diff_context,file,nofilter]. + filter_mode: added + # Exit with 1 when it find at least one finding. + fail_on_error: true diff --git a/go.mod b/go.mod index 71d8968..5c93bf5 100644 --- a/go.mod +++ b/go.mod @@ -3,15 +3,15 @@ module github.com/gookit/config/v2 go 1.19 require ( + dario.cat/mergo v1.0.0 github.com/BurntSushi/toml v1.3.2 github.com/goccy/go-json v0.10.2 github.com/goccy/go-yaml v1.11.2 github.com/gookit/goutil v0.6.15 - github.com/gookit/ini/v2 v2.2.2 + github.com/gookit/ini/v2 v2.2.3 github.com/gookit/properties v0.3.0 github.com/hashicorp/hcl v1.0.0 github.com/hashicorp/hcl/v2 v2.19.1 - github.com/imdario/mergo v0.3.15 github.com/mitchellh/mapstructure v1.5.0 github.com/titanous/json5 v1.0.0 ) diff --git a/go.sum b/go.sum index 86a2b1e..a9dd72e 100644 --- a/go.sum +++ b/go.sum @@ -1,3 +1,5 @@ +dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= +dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8= github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo= @@ -24,16 +26,14 @@ github.com/gookit/color v1.5.4 h1:FZmqs7XOyGgCAxmWyPslpiok1k05wmY3SJTytgvYFs0= github.com/gookit/color v1.5.4/go.mod h1:pZJOeOS8DM43rXbp4AZo1n9zCU2qjpcRko0b6/QJi9w= github.com/gookit/goutil v0.6.15 h1:mMQ0ElojNZoyPD0eVROk5QXJPh2uKR4g06slgPDF5Jo= github.com/gookit/goutil v0.6.15/go.mod h1:qdKdYEHQdEtyH+4fNdQNZfJHhI0jUZzHxQVAV3DaMDY= -github.com/gookit/ini/v2 v2.2.2 h1:3B8abZJrVH1vi/7TU4STuTBxdhiAq1ORSt6NJZCahaI= -github.com/gookit/ini/v2 v2.2.2/go.mod h1:wGEfnBxv+7nVXytWM44tiqczv5hLKJ+m9MaA2uJg3iM= +github.com/gookit/ini/v2 v2.2.3 h1:nSbN+x9OfQPcMObTFP+XuHt8ev6ndv/fWWqxFhPMu2E= +github.com/gookit/ini/v2 v2.2.3/go.mod h1:Vu6p7P7xcfmb8KYu3L0ek8bqu/Im63N81q208SCCZY4= github.com/gookit/properties v0.3.0 h1:52NBYMOP5VXm3mKrQSdQoeEPgk2zXBGDF1R/xblsa6Y= github.com/gookit/properties v0.3.0/go.mod h1:020VQRBo8R5gJZaMc+ohmLmUv4esuv5xw3/zNJYvxuE= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/hcl/v2 v2.19.1 h1://i05Jqznmb2EXqa39Nsvyan2o5XyMowW5fnCKW5RPI= github.com/hashicorp/hcl/v2 v2.19.1/go.mod h1:ThLC89FV4p9MPW804KVbe/cEXoQ8NZEh+JtMeeGErHE= -github.com/imdario/mergo v0.3.15 h1:M8XP7IuFNsqUx6VPK2P9OSmsYsI/YFaGil0uD21V3dM= -github.com/imdario/mergo v0.3.15/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= diff --git a/load.go b/load.go index b74aa12..740aa2c 100644 --- a/load.go +++ b/load.go @@ -12,9 +12,9 @@ import ( "strings" "time" + "dario.cat/mergo" "github.com/gookit/goutil/errorx" "github.com/gookit/goutil/fsutil" - "github.com/imdario/mergo" ) // LoadFiles load one or multi files, will fire OnLoadData event