From 95b1e6a41d7de655ad604f3ba5195d8a05e26c01 Mon Sep 17 00:00:00 2001 From: "Dylan M. Taylor" Date: Fri, 30 Oct 2026 10:30:15 -0400 Subject: [PATCH] ci: add SonarCloud scan via shared reusable workflow (#104) --- .github/workflows/sonarcloud.yml | 21 +++++++++++++++++++++ README.md | 2 ++ sonar-project.properties | 3 +++ 3 files changed, 26 insertions(+) create mode 100644 .github/workflows/sonarcloud.yml create mode 100644 sonar-project.properties diff --git a/.github/workflows/sonarcloud.yml b/.github/workflows/sonarcloud.yml new file mode 100644 index 0000000..e78fe1e --- /dev/null +++ b/.github/workflows/sonarcloud.yml @@ -0,0 +1,21 @@ +name: SonarCloud + +on: + push: + branches: [main] + pull_request: + types: [opened, synchronize, reopened] + +permissions: + contents: read + +concurrency: + group: sonarcloud-${{ github.ref }} + # A push to main is the run that publishes coverage; superseded runs there would never finish. + cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} + +jobs: + sonarcloud: + # Tracked at @main so org-wide CI improvements propagate without PR churn. + uses: storytold/craft-common-actions/.github/workflows/sonarcloud.yml@main + secrets: inherit diff --git a/README.md b/README.md index ab9415a..02d08f3 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # Craft AI integrations +Scanned by SonarCloud + One AI connection for every Craft app. A person sets up a tool and its model once, in the launcher or natively in any app, and every app that has that tool uses it with no further setup. The shared crates own connections, models, the tool to model binding, the model picker, consent and jobs. Each app keeps diff --git a/sonar-project.properties b/sonar-project.properties new file mode 100644 index 0000000..ae58166 --- /dev/null +++ b/sonar-project.properties @@ -0,0 +1,3 @@ +sonar.projectKey=storytold_craft-ai-integrations +sonar.organization=storytold +sonar.coverage.exclusions=**/tools/**,**/docs/**