diff --git a/.github/workflows/sonarcloud.yml b/.github/workflows/sonarcloud.yml new file mode 100644 index 0000000..5a4dbf9 --- /dev/null +++ b/.github/workflows/sonarcloud.yml @@ -0,0 +1,39 @@ +name: SonarCloud +on: + push: + branches: + - main + pull_request: + types: [opened, synchronize, reopened] + +permissions: + contents: read + pull-requests: read + +jobs: + sonarcloud: + name: SonarCloud + runs-on: ubuntu-latest + if: ${{ !github.event.pull_request.head.repo.fork }} + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis + submodules: recursive + - uses: actions/setup-go@v5 + with: + go-version: '^1.22' + - name: Install dependencies + run: go install + working-directory: ${{ env.relativePath }} + - name: Build SDK project + run: go build + working-directory: ${{ env.relativePath }} + - name: Run unit tests + run: go test -coverprofile cover.out -coverpkg=./... ./... + working-directory: ${{ env.relativePath }} + - name: SonarCloud Scan + uses: SonarSource/sonarcloud-github-action@master + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} \ No newline at end of file diff --git a/sonar-project.properties b/sonar-project.properties new file mode 100644 index 0000000..7279862 --- /dev/null +++ b/sonar-project.properties @@ -0,0 +1,6 @@ +sonar.projectKey=microsoft_kiota-bundle-go +sonar.organization=microsoft +sonar.exclusions=**/*_test.go +sonar.test.inclusions=**/*_test.go +sonar.go.tests.reportPaths=result.out +sonar.go.coverage.reportPaths=cover.out \ No newline at end of file