diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 44596b4a8..363b2a512 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -192,18 +192,6 @@ jobs: token: ${{ secrets.CODECOV_TOKEN }} flags: backend-python-${{ matrix.python-version }} files: coverage.xml - - name: Upload coverage artifacts - uses: actions/upload-artifact@v4 - if: always() - with: - name: backend-coverage-${{ matrix.python-version }} - path: | - .coverage - coverage.xml - junit.xml - retention-days: 1 - include-hidden-files: true - if-no-files-found: error - name: Stop containers if: always() run: | @@ -286,17 +274,6 @@ jobs: token: ${{ secrets.CODECOV_TOKEN }} flags: frontend-node-${{ matrix.node-version }} directory: src-ui/coverage/ - - name: Upload coverage artifacts - uses: actions/upload-artifact@v4 - if: always() - with: - name: frontend-coverage-${{ matrix.shard-index }} - path: | - src-ui/coverage/lcov.info - src-ui/coverage/coverage-final.json - src-ui/junit.xml - retention-days: 1 - if-no-files-found: error tests-frontend-e2e: name: "Frontend E2E Tests (Node ${{ matrix.node-version }} - ${{ matrix.shard-index }}/${{ matrix.shard-count }})" runs-on: ubuntu-24.04 @@ -377,74 +354,6 @@ jobs: env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} run: cd src-ui && pnpm run build --configuration=production - sonarqube-analysis: - name: "SonarQube Analysis" - runs-on: ubuntu-24.04 - needs: - - tests-backend - - tests-frontend - if: github.repository_owner == 'paperless-ngx' - steps: - - name: Checkout - uses: actions/checkout@v5 - with: - fetch-depth: 0 - - name: Download all backend coverage - uses: actions/download-artifact@v5.0.0 - with: - pattern: backend-coverage-* - path: ./coverage/ - - name: Download all frontend coverage - uses: actions/download-artifact@v5.0.0 - with: - pattern: frontend-coverage-* - path: ./coverage/ - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: ${{ env.DEFAULT_PYTHON_VERSION }} - - name: Install coverage tools - run: | - pip install coverage - npm install -g nyc - # Merge backend coverage from all Python versions - - name: Merge backend coverage - run: | - coverage combine coverage/backend-coverage-*/.coverage - coverage xml -o merged-backend-coverage.xml - # Merge frontend coverage from all shards - - name: Merge frontend coverage - run: | - # Find all coverage-final.json files from the shards, exit with error if none found - shopt -s nullglob - files=(coverage/frontend-coverage-*/coverage/coverage-final.json) - if [ ${#files[@]} -eq 0 ]; then - echo "No frontend coverage JSON found under coverage/" >&2 - exit 1 - fi - # Create .nyc_output directory and copy each shard's coverage JSON into it with a unique name - mkdir -p .nyc_output - for coverage_json in "${files[@]}"; do - shard=$(basename "$(dirname "$(dirname "$coverage_json")")") - cp "$coverage_json" ".nyc_output/${shard}.json" - done - npx nyc merge .nyc_output .nyc_output/out.json - npx nyc report --reporter=lcovonly --report-dir coverage - - name: Upload coverage artifacts - uses: actions/upload-artifact@v4.6.2 - with: - name: merged-coverage - path: | - merged-backend-coverage.xml - .nyc_output/* - coverage/lcov.info - retention-days: 7 - if-no-files-found: error - include-hidden-files: true - - name: SonarQube Analysis - uses: SonarSource/sonarqube-scan-action@v5 - env: - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} build-docker-image: name: Build Docker image for ${{ github.ref_name }} runs-on: ubuntu-24.04 diff --git a/pyproject.toml b/pyproject.toml index f3b270c77..a49e94f38 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -255,7 +255,6 @@ PAPERLESS_DISABLE_DBHANDLER = "true" PAPERLESS_CACHE_BACKEND = "django.core.cache.backends.locmem.LocMemCache" [tool.coverage.run] -relative_files = true source = [ "src/", ] diff --git a/sonar-project.properties b/sonar-project.properties deleted file mode 100644 index d9d341e87..000000000 --- a/sonar-project.properties +++ /dev/null @@ -1,24 +0,0 @@ -sonar.projectKey=paperless-ngx_paperless-ngx -sonar.organization=paperless-ngx -sonar.projectName=Paperless-ngx -sonar.projectVersion=1.0 - -# Source and test directories -sonar.sources=src/,src-ui/ -sonar.test.inclusions=**/test_*.py,**/tests.py,**/*.spec.ts,**/*.test.ts - -# Language specific settings -sonar.python.version=3.10,3.11,3.12,3.13 - -# Coverage reports -sonar.python.coverage.reportPaths=merged-backend-coverage.xml -sonar.javascript.lcov.reportPaths=coverage/lcov.info - -# Test execution reports -sonar.junit.reportPaths=**/junit.xml,**/test-results.xml - -# Encoding -sonar.sourceEncoding=UTF-8 - -# Exclusions -sonar.exclusions=**/migrations/**,**/node_modules/**,**/static/**,**/venv/**,**/.venv/**,**/dist/**