diff --git a/.github/workflows/sonarcloud.yml b/.github/workflows/sonarcloud.yml index 48e72ec..cd47dd3 100644 --- a/.github/workflows/sonarcloud.yml +++ b/.github/workflows/sonarcloud.yml @@ -60,32 +60,42 @@ jobs: java-version: "21" cache: "gradle" - - name: Build - run: ./gradlew build + - name: Cache SonarCloud packages + uses: actions/cache@v3 + with: + path: ~/.sonar/cache + key: ${{ runner.os }}-sonar + restore-keys: ${{ runner.os }}-sonar + + - name: Cache Gradle packages + uses: actions/cache@v3 + with: + path: ~/.gradle/caches + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} + restore-keys: ${{ runner.os }}-gradle - - name: Analyze with SonarCloud + - name: Wait for PostgreSQL + run: | + for i in {1..30}; do + if pg_isready -h localhost -p 5432 -U postgres; then + echo "PostgreSQL is up and running" + break + fi + echo "Waiting for PostgreSQL..." + sleep 1 + done + if ! pg_isready -h localhost -p 5432 -U postgres; then + echo "PostgreSQL failed to start" && exit 1 + fi - # You can pin the exact commit or the version. - # uses: SonarSource/sonarcloud-github-action@de2e56b42aa84d0b1c5b622644ac17e505c9a049 - uses: SonarSource/sonarcloud-github-action@de2e56b42aa84d0b1c5b622644ac17e505c9a049 + - name: Build and analyze env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} # Generate a token on Sonarcloud.io, add it to the secrets of this repo with the name SONAR_TOKEN (Settings > Secrets > Actions > add new repository secret) - with: - # Additional arguments for the sonarcloud scanner - args: - # Unique keys of your project and organization. You can find them in SonarCloud > Information (bottom-left menu) - # mandatory - -Dsonar.projectKey=ADPRO-C11_snackscription-review - -Dsonar.organization=adpro-c11 - -Dsonar.java.binaries=. - -Dsonar.sources=src/main/java - -Dsonar.tests=src/test/java - # Comma-separated paths to directories containing main source files. - #-Dsonar.sources= # optional, default is project base directory - # When you need the analysis to take place in a directory other than the one from which it was launched - #-Dsonar.projectBaseDir= # optional, default is . - # Comma-separated paths to directories containing test source files. - #-Dsonar.tests= # optional. For more info about Code Coverage, please refer to https://docs.sonarcloud.io/enriching/test-coverage/overview/ - # Adds more detail to both client and server-side analysis logs, activating DEBUG mode for the scanner, and adding client-side environment variables and system properties to the server-side log of analysis report processing. - #-Dsonar.verbose= # optional, default is false + GITHUB_TOKEN: ${{ secrets.GIT_HUB_TOKEN }} + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + SPRING_DATASOURCE_URL: jdbc:postgresql://localhost:5432/snakscription_review + SPRING_DATASOURCE_USERNAME: postgres + SPRING_DATASOURCE_PASSWORD: postgres + JWT_SECRET: ${{ secrets.JWT_SECRET }} + run: | + chmod +x ./gradlew + ./gradlew build sonar --info \ No newline at end of file