| name: SonarCloud Build |
| env: |
| SHOWCASE_VERSION: 0.27.0 |
| on: |
| push: |
| branches: |
| - main |
| pull_request: |
| types: [opened, synchronize, reopened] |
| jobs: |
| build: |
| name: Build |
| runs-on: ubuntu-22.04 |
| steps: |
| - uses: actions/checkout@v3 |
| with: |
| fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis |
| - name: Set up JDK 11 |
| uses: actions/setup-java@v3 |
| with: |
| java-version: 11 |
| distribution: temurin |
| - name: Cache SonarCloud packages |
| uses: actions/cache@v3 |
| with: |
| path: ~/.sonar/cache |
| key: ${{ runner.os }}-sonar |
| restore-keys: ${{ runner.os }}-sonar |
| - name: Cache Maven packages |
| uses: actions/cache@v3 |
| with: |
| path: ~/.m2 |
| key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} |
| restore-keys: ${{ runner.os }}-m2 |
| - name: Install showcase server |
| run: | |
| sudo mkdir -p /usr/src/showcase |
| sudo chown -R ${USER} /usr/src/ |
| curl --location https://github.com/googleapis/gapic-showcase/releases/download/v${SHOWCASE_VERSION}/gapic-showcase-${SHOWCASE_VERSION}-linux-amd64.tar.gz --output /usr/src/showcase/showcase-${SHOWCASE_VERSION}-linux-amd64.tar.gz |
| cd /usr/src/showcase/ |
| tar -xf showcase-* |
| ./gapic-showcase run & |
| cd - |
| - name: Build and analyze for full test coverage |
| env: |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any |
| SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} |
| run: | |
| mvn -B verify -Dcheckstyle.skip \ |
| -DenableFullTestCoverage \ |
| -Penable-integration-tests \ |
| org.sonarsource.scanner.maven:sonar-maven-plugin:sonar \ |
| -Dsonar.projectKey=googleapis_gapic-generator-java \ |
| -Dsonar.organization=googleapis \ |
| -Dsonar.host.url=https://sonarcloud.io |
| |
| - name: Build and analyze Showcase Integration Tests Coverage |
| env: |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any |
| SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} |
| run: | |
| mvn -B clean verify -Dcheckstyle.skip \ |
| -DskipUnitTests \ |
| -Penable-integration-tests \ |
| -DenableShowcaseTestCoverage \ |
| org.sonarsource.scanner.maven:sonar-maven-plugin:sonar \ |
| -Dsonar.projectKey=googleapis_gapic-generator-java_integration_tests \ |
| -Dsonar.organization=googleapis \ |
| -Dsonar.host.url=https://sonarcloud.io \ |
| -Dsonar.projectName=java_showcase_integration_tests |
| - name: Build and analyze Showcase Unit Tests Coverage |
| env: |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any |
| SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} |
| run: | |
| mvn -B clean test -Dcheckstyle.skip \ |
| -DenableShowcaseTestCoverage \ |
| org.sonarsource.scanner.maven:sonar-maven-plugin:sonar \ |
| -Dsonar.projectKey=googleapis_gapic-generator-java_unit_tests \ |
| -Dsonar.organization=googleapis \ |
| -Dsonar.host.url=https://sonarcloud.io \ |
| -Dsonar.projectName=java_showcase_unit_tests |