diff --git a/.github/workflows/sonarcloud.yml b/.github/workflows/sonarcloud.yml new file mode 100644 index 00000000..27b5b5ea --- /dev/null +++ b/.github/workflows/sonarcloud.yml @@ -0,0 +1,35 @@ +name: SonarCloud Analysis + +on: + push: + branches: + - main + pull_request: + types: [opened, synchronize, reopened] + +jobs: + sonarcloud: + name: SonarCloud + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '22' + cache: 'npm' + + - name: Install dependencies + run: npm ci --legacy-peer-deps + + - name: Run tests with coverage + run: npm run test:coverage + + - name: SonarCloud Scan + uses: SonarSource/sonarqube-scan-action@689fb39b34b9aa95ebc5f8f119343ddd51542402 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} diff --git a/package-lock.json b/package-lock.json index 95ea95f2..ad94cb54 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20830,9 +20830,9 @@ "license": "MIT" }, "node_modules/tmp": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz", - "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==", + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.7.tgz", + "integrity": "sha512-e0votIpp4Uo2AJYSzVHV6xCcawuiez3DzqDAbrTc3YxBkplN6e+dM13ZeIcZnDg/QpSuU2zfZ3rzwY8ukEnaXw==", "license": "MIT", "engines": { "node": ">=14.14" diff --git a/package.json b/package.json index 04d21f80..6b2a1ade 100644 --- a/package.json +++ b/package.json @@ -148,6 +148,7 @@ "@hono/node-server": "1.19.14", "react-is": "^19.0.0", "@opentelemetry/auto-instrumentations-node": "0.75.0", - "@opentelemetry/sdk-node": "0.218.0" + "@opentelemetry/sdk-node": "0.218.0", + "tmp": "^0.2.6" } } diff --git a/sonar-project.properties b/sonar-project.properties index a8472381..4c98688f 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -10,3 +10,9 @@ sonar.organization=emiyakiritsugu3 # Encoding of the source code. Default is default system encoding #sonar.sourceEncoding=UTF-8 + +# Test coverage reporting +sonar.javascript.lcov.reportPaths=coverage/lcov.info +sonar.exclusions=src/**/*.test.ts,src/**/*.test.tsx,src/**/*.spec.ts,src/**/*.spec.tsx,src/test/**,coverage/**,node_modules/** +sonar.tests=src +sonar.test.inclusions=src/**/*.test.ts,src/**/*.test.tsx,src/**/*.spec.ts,src/**/*.spec.tsx