name: CI on: pull_request: branches: - dev push: branches: - dev - master jobs: build-and-test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: gradle/wrapper-validation-action@v1 - name: create and checkout branch # push events already checked out the branch if: github.event_name == 'pull_request' run: git checkout -B ${{ github.head_ref }} - name: set up JDK 1.8 uses: actions/setup-java@v1.4.3 with: java-version: 1.8 - name: Cache Gradle dependencies uses: actions/cache@v2 with: path: ~/.gradle/caches key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} restore-keys: ${{ runner.os }}-gradle - name: Build debug APK and run Tests run: ./gradlew assembleDebug lintDebug testDebugUnitTest --stacktrace - name: Upload APK uses: actions/upload-artifact@v2 with: name: app path: app/build/outputs/apk/debug/*.apk sonar: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis - name: Set up JDK 11 uses: actions/setup-java@v1.4.3 with: java-version: 11 # Sonar requires JDK 11 - name: Cache SonarCloud packages uses: actions/cache@v2 with: path: ~/.sonar/cache key: ${{ runner.os }}-sonar restore-keys: ${{ runner.os }}-sonar - name: Cache Gradle packages uses: actions/cache@v2 with: path: ~/.gradle/caches key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} restore-keys: ${{ runner.os }}-gradle - name: Build and analyze env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} run: ./gradlew build sonarqube --info