Skip to content

Automates CHANGELOG.md generation and draft release note management using Gemini AI, triggered on every GitHub Release event. #1674

Automates CHANGELOG.md generation and draft release note management using Gemini AI, triggered on every GitHub Release event.

Automates CHANGELOG.md generation and draft release note management using Gemini AI, triggered on every GitHub Release event. #1674

Workflow file for this run

name: SonarQube Analysis
on:
push:
branches:
- develop
pull_request:
branches:
- '**' # run on all PR branches
types: [opened, synchronize, reopened]
workflow_dispatch:
permissions:
pull-requests: read # Allows SonarQube to decorate PRs with analysis results
jobs:
sonar-scan:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
with:
fetch-depth: 0 # Ensure shallow clones are disabled for better analysis relevancy
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: maven
- name: Install dependencies
run: |
mvn clean install -P unit-tests -DskipIntegrationTests
- name: Install SonarQube Scanner
run: |
if [ ! -L /usr/local/bin/sonar-scanner ]; then
curl -sSLo sonar-scanner-cli.zip https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-5.0.1.3006-linux.zip
unzip sonar-scanner-cli.zip
sudo mv sonar-scanner-5.0.1.3006-linux /opt/sonar-scanner
sudo ln -s /opt/sonar-scanner/bin/sonar-scanner /usr/local/bin/sonar-scanner
fi
- name: Run SonarQube analysis
run: |
if [ "${{ github.event_name }}" == "pull_request" ]; then
sonar-scanner \
-Dsonar.projectKey=cap-java-sdm \
-Dsonar.sources=sdm/src/main/java \
-Dsonar.java.binaries=sdm/target/classes \
-Dsonar.java.libraries=sdm/target/sdm.jar \
-Dsonar.junit.reportPaths=sdm/target/surefire-reports \
-Dsonar.coverage.jacoco.xmlReportPaths=sdm/target/site/jacoco/jacoco.xml \
-Dsonar.inclusions=**/*.java \
-Dsonar.exclusions=**/target/**,**/node_modules/**,sdm/src/main/test/**,cap-notebook/*.capnb,sdm/src/main/java/com/sap/cds/sdm/model/**,sdm/src/main/java/com/sap/cds/sdm/caching/CacheKey.java,sdm/src/main/java/com/sap/cds/sdm/caching/RepoKey.java,sdm/src/main/java/com/sap/cds/sdm/caching/TokenCacheKey.java,sdm/src/main/java/com/sap/cds/sdm/caching/SecondaryTypesKey.java,sdm/src/main/java/com/sap/cds/sdm/caching/SecondaryPropertiesKey.java \
-Dsonar.java.file.suffixes=.java \
-Dsonar.host.url=${{ secrets.SONAR_HOST_URL }} \
-Dsonar.login=${{ secrets.SONAR_TOKEN }} \
-Dsonar.pullrequest.key=${{ github.event.pull_request.number }} \
-Dsonar.pullrequest.branch=${{ github.head_ref }} \
-Dsonar.pullrequest.base=${{ github.base_ref }}
else
sonar-scanner \
-Dsonar.projectKey=cap-java-sdm \
-Dsonar.sources=sdm/src/main/java \
-Dsonar.java.binaries=sdm/target/classes \
-Dsonar.java.libraries=sdm/target/sdm.jar \
-Dsonar.junit.reportPaths=sdm/target/surefire-reports \
-Dsonar.coverage.jacoco.xmlReportPaths=sdm/target/site/jacoco/jacoco.xml \
-Dsonar.inclusions=**/*.java \
-Dsonar.exclusions=**/target/**,**/node_modules/**,sdm/src/main/test/**,cap-notebook/*.capnb,sdm/src/main/java/com/sap/cds/sdm/model/**,sdm/src/main/java/com/sap/cds/sdm/caching/CacheKey.java,sdm/src/main/java/com/sap/cds/sdm/caching/RepoKey.java,sdm/src/main/java/com/sap/cds/sdm/caching/TokenCacheKey.java,sdm/src/main/java/com/sap/cds/sdm/caching/SecondaryTypesKey.java,sdm/src/main/java/com/sap/cds/sdm/caching/SecondaryPropertiesKey.java \
-Dsonar.java.file.suffixes=.java \
-Dsonar.host.url=${{ secrets.SONAR_HOST_URL }} \
-Dsonar.login=${{ secrets.SONAR_TOKEN }}
fi
- name: Quality Gate Check
id: sonarqube-quality-gate
uses: sonarsource/sonarqube-quality-gate-action@master
with:
sonar_host_url: ${{ secrets.SONAR_HOST_URL }}
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}