fix: use mvn sonar:sonar instead of standalone sonar-scanner
The standalone sonar-scanner CLI has Java discovery issues in the build container. Switch to the Maven sonar plugin (same approach as cameleer3 agent repo), which uses Maven's own JDK. This also removes the sonar-scanner download/install step entirely. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -57,41 +57,15 @@ jobs:
|
|||||||
working-directory: ui
|
working-directory: ui
|
||||||
run: npm run lint -- --format json --output-file eslint-report.json || true
|
run: npm run lint -- --format json --output-file eslint-report.json || true
|
||||||
|
|
||||||
- name: Install sonar-scanner
|
|
||||||
run: |
|
|
||||||
SONAR_SCANNER_VERSION=6.2.1.4610
|
|
||||||
ARCH=$(uname -m)
|
|
||||||
case "$ARCH" in
|
|
||||||
aarch64|arm64) PLATFORM="linux-aarch64" ;;
|
|
||||||
*) PLATFORM="linux-x64" ;;
|
|
||||||
esac
|
|
||||||
curl -sSLo sonar-scanner.zip "https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-${SONAR_SCANNER_VERSION}-${PLATFORM}.zip"
|
|
||||||
jar xf sonar-scanner.zip
|
|
||||||
chmod +x "sonar-scanner-${SONAR_SCANNER_VERSION}-${PLATFORM}/bin/sonar-scanner"
|
|
||||||
ln -s "$(pwd)/sonar-scanner-${SONAR_SCANNER_VERSION}-${PLATFORM}/bin/sonar-scanner" /usr/local/bin/sonar-scanner
|
|
||||||
|
|
||||||
- name: SonarQube Analysis
|
- name: SonarQube Analysis
|
||||||
run: |
|
run: |
|
||||||
# sonar-scanner 6.x uses SONAR_SCANNER_JAVA_HOME (not JAVA_HOME)
|
mvn sonar:sonar --batch-mode \
|
||||||
if [ -z "$JAVA_HOME" ]; then
|
-Dsonar.host.url=${{ secrets.SONAR_HOST_URL }} \
|
||||||
JAR_PATH=$(readlink -f $(which jar) 2>/dev/null || find / -name jar -type f 2>/dev/null | head -1)
|
-Dsonar.token=${{ secrets.SONAR_TOKEN }} \
|
||||||
export JAVA_HOME=$(dirname $(dirname "$JAR_PATH"))
|
|
||||||
fi
|
|
||||||
export SONAR_SCANNER_JAVA_HOME="$JAVA_HOME"
|
|
||||||
export PATH="$JAVA_HOME/bin:$PATH"
|
|
||||||
sonar-scanner \
|
|
||||||
-Dsonar.host.url="$SONAR_HOST_URL" \
|
|
||||||
-Dsonar.token="$SONAR_TOKEN" \
|
|
||||||
-Dsonar.projectKey=cameleer3-server \
|
-Dsonar.projectKey=cameleer3-server \
|
||||||
-Dsonar.projectName="Cameleer3 Server" \
|
-Dsonar.projectName="Cameleer3 Server" \
|
||||||
-Dsonar.sources=cameleer3-server-core/src/main/java,cameleer3-server-app/src/main/java,ui/src \
|
-Dsonar.sources=cameleer3-server-core/src/main/java,cameleer3-server-app/src/main/java,ui/src \
|
||||||
-Dsonar.tests=cameleer3-server-core/src/test/java,cameleer3-server-app/src/test/java \
|
-Dsonar.tests=cameleer3-server-core/src/test/java,cameleer3-server-app/src/test/java \
|
||||||
-Dsonar.java.binaries=cameleer3-server-core/target/classes,cameleer3-server-app/target/classes \
|
|
||||||
-Dsonar.java.test.binaries=cameleer3-server-core/target/test-classes,cameleer3-server-app/target/test-classes \
|
|
||||||
-Dsonar.java.libraries="$HOME/.m2/repository/**/*.jar" \
|
|
||||||
-Dsonar.typescript.eslint.reportPaths=ui/eslint-report.json \
|
-Dsonar.typescript.eslint.reportPaths=ui/eslint-report.json \
|
||||||
-Dsonar.eslint.reportPaths=ui/eslint-report.json \
|
-Dsonar.eslint.reportPaths=ui/eslint-report.json \
|
||||||
-Dsonar.exclusions="ui/node_modules/**,ui/dist/**,**/target/**"
|
-Dsonar.exclusions="ui/node_modules/**,ui/dist/**,**/target/**"
|
||||||
env:
|
|
||||||
SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }}
|
|
||||||
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user