name: Build on: [push] jobs: build: runs-on: ubuntu-22.04 # We want to run on external PRs, but not on our own internal PRs as they'll be run # by the push to the branch. if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository steps: - name: Set up JDK 17 uses: actions/setup-java@v1 with: java-version: 17 - name: Cache Gradle id: cache-gradle uses: actions/cache@v2.1.8 with: path: ~/.gradle key: ${{ runner.os }}-gradle - uses: actions/checkout@v1 - name: Grant execute permission to gradlew run: chmod +x gradlew - name: Build run: ./gradlew build -x test --warning-mode all env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Upload build artifacts uses: actions/upload-artifact@v2 with: path: "**/build/libs" test: runs-on: ubuntu-22.04 steps: - name: Set up JDK 17 uses: actions/setup-java@v1 with: java-version: 17 - name: Cache Gradle id: cache-gradle uses: actions/cache@v1 with: path: ~/.gradle key: ${{ runner.os }}-gradle - uses: actions/checkout@v1 - name: Grant execute permission to gradlew run: chmod +x gradlew - name: Test run: ./gradlew test --warning-mode all env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Create Coverage run: ./gradlew jacocoTestReport env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Upload CodeCov Report uses: codecov/codecov-action@v1 with: file: "**/build/reports/jacoco/**/*.xml" - name: Publish Unit Test Results uses: EnricoMi/publish-unit-test-result-action@v1.24 if: always() with: files: "**/build/test-results/**/*.xml"