fix(exec): resolve executables on Windows — PATHEXT, mode bits, and a swallowed failure #26
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [dev, main] | |
| pull_request: | |
| branches: [dev, main] | |
| permissions: | |
| contents: read | |
| env: | |
| GOFLAGS: -buildvcs=false | |
| GOWORK: "off" | |
| GOPROXY: "direct" | |
| GOSUMDB: "off" | |
| jobs: | |
| test: | |
| name: Test + Coverage | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v5 | |
| with: | |
| fetch-depth: 0 | |
| - uses: actions/setup-go@v6 | |
| with: | |
| go-version: '1.26' | |
| - name: Test with coverage | |
| working-directory: go | |
| run: go test -race -coverprofile=coverage.out -covermode=atomic -count=1 ./... | |
| - name: Upload coverage to Codecov | |
| uses: codecov/codecov-action@v5 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| files: go/coverage.out | |
| flags: unittests | |
| fail_ci_if_error: false | |
| lint: | |
| name: golangci-lint | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: actions/setup-go@v6 | |
| with: | |
| go-version: '1.26' | |
| # --tests=false is deliberately absent. It hid the test files from every | |
| # linter, and `unused` reads "no caller in the files I can see" as dead: | |
| # the WebSocket hub in pkg/api is built only by provider_test.go, so all | |
| # 19 of its symbols were reported unused and the suggested fix was to | |
| # delete code the tests depend on. What the tests need excluded is now | |
| # scoped per-rule in .golangci.yml. | |
| - uses: golangci/golangci-lint-action@v9 | |
| with: | |
| version: latest | |
| working-directory: go | |
| args: --timeout=5m | |
| sonarcloud: | |
| name: SonarCloud | |
| runs-on: ubuntu-latest | |
| needs: test | |
| steps: | |
| - uses: actions/checkout@v5 | |
| with: | |
| fetch-depth: 0 | |
| - uses: actions/setup-go@v6 | |
| with: | |
| go-version: '1.26' | |
| - name: Test for coverage | |
| working-directory: go | |
| run: go test -coverprofile=coverage.out -covermode=atomic -count=1 ./... | |
| - name: SonarCloud Scan | |
| uses: SonarSource/sonarqube-scan-action@v6 | |
| env: | |
| SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
| with: | |
| args: > | |
| -Dsonar.organization=dappcore | |
| -Dsonar.projectKey=dappcore_go-process | |
| -Dsonar.sources=go | |
| -Dsonar.exclusions=**/vendor/**,**/third_party/**,**/.tmp/**,**/*_test.go | |
| -Dsonar.tests=go | |
| -Dsonar.test.inclusions=**/*_test.go | |
| -Dsonar.go.coverage.reportPaths=go/coverage.out |