name: SonarCloud Analysis on: push: branches: - production jobs: do-scan: name: SonarCloud Scan runs-on: ubuntu-latest permissions: contents: read steps: - name: Checkout code uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set up Node uses: actions/setup-node@v4 with: node-version: "22" cache: "npm" - name: Install dependencies run: npm ci - name: Run tests and generate coverage run: npm run coverage continue-on-error: true env: CI: true - name: SonarCloud Scan uses: SonarSource/sonarqube-scan-action@master env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} with: args: > -Dsonar.projectKey=xliviux_ydioy -Dsonar.organization=xliviux -Dsonar.projectName=YDIOY -Dsonar.sourceEncoding=UTF-8 -Dsonar.sources=src,tests -Dsonar.inclusions=src/**/*.ts,src/**/*.js,src/**/*.vue,src/**/*.css,src/**/*.scss,tests/**/*.spec.ts -Dsonar.exclusions=**/node_modules/**,**/coverage/**,*.config.ts -Dsonar.coverage.exclusions=tests/**,*.config.ts -Dsonar.javascript.lcov.reportPaths=coverage/lcov.info -Dsonar.testExecutionReportPaths=coverage/sonar-report.xml - name: Check SonarCloud Quality Gate uses: sonarsource/sonarqube-quality-gate-action@master timeout-minutes: 5 env: SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - name: Upload test results if: always() uses: actions/upload-artifact@v4 with: name: test-results path: | coverage/