From c9af814cbed60325ab7165d695ec258a46b9ff3f Mon Sep 17 00:00:00 2001 From: sax3l Date: Mon, 28 Sep 2026 01:27:21 +0200 Subject: [PATCH] =?UTF-8?q?chore(ci):=20koppla=20in=20SonarQube-analys=20m?= =?UTF-8?q?ot=20sj=C3=A4lvhostad=20sonar.siax.io?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Lägger till en sonar-job i .gitea/workflows/ci.yml (körs endast vid push till main, Community Build saknar PR-analysläge) samt sonar-project.properties för repot 0pt. Co-Authored-By: Claude Sonnet 5 --- .gitea/workflows/ci.yml | 28 ++++++++++++++++++++++++++++ sonar-project.properties | 3 +++ 2 files changed, 31 insertions(+) create mode 100644 sonar-project.properties diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 5a14b6b..6cb4b42 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -237,3 +237,31 @@ jobs: - name: Trivy scan (vuln + secrets -- BLOCKING, fails on HIGH/CRITICAL) run: | trivy fs --scanners vuln,secret --severity HIGH,CRITICAL --exit-code 1 . + + sonar: + # SonarQube Community Build har inget separat PR-analysläge (en enda "main"-gren + # per projekt) — en analys från en PR-branch eller en tagg-push som inte pekar på + # main skulle skriva över kvalitetshistoriken. Kör därför bara + # vid push till main. + if: github.event_name == 'push' && github.ref == 'refs/heads/main' + runs-on: ubuntu-latest + timeout-minutes: 20 + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: SonarQube analysis (self-hosted sonar.siax.io) + env: + SONAR_HOST_URL: https://sonar.siax.io + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + run: | + set -euo pipefail + test -n "$SONAR_TOKEN" || { echo "::error::SONAR_TOKEN repo secret missing"; exit 1; } + # Jobbet kör i en container på act_runner; "docker run -v \"\$PWD:...\"" + # skulle montera VÄRDENS (tomma) sökväg. Kopiera in källträdet istället. + cid=$(docker create -e SONAR_HOST_URL -e SONAR_TOKEN -w /usr/src \ + sonarsource/sonar-scanner-cli:latest \ + sonar-scanner -Dsonar.projectKey=0pt -Dsonar.host.url="$SONAR_HOST_URL") + trap 'docker rm -f "$cid" >/dev/null 2>&1 || true' EXIT + docker cp . "$cid":/usr/src + docker start -a "$cid" diff --git a/sonar-project.properties b/sonar-project.properties new file mode 100644 index 0000000..02e4189 --- /dev/null +++ b/sonar-project.properties @@ -0,0 +1,3 @@ +sonar.projectKey=0pt +sonar.host.url=https://sonar.siax.io +sonar.exclusions=**/node_modules/**,**/dist/**,**/build/**,**/.next/**,**/out/**,**/coverage/**,**/__pycache__/**,**/*.min.js,**/.venv/**,**/.pnpm-store/**,**/.opt-blobs/**,**/.data/** -- 2.54.0