Skip to content

Update all dependencies #182

Update all dependencies

Update all dependencies #182

Workflow file for this run

name: Build
on:
workflow_dispatch:
push:
branches:
- 'master'
pull_request:
branches:
- 'master'
- '!renovate/**'
concurrency:
group: build-${{ github.ref }}
cancel-in-progress: true
jobs:
linter:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout repositoryy
uses: actions/checkout@v4
- name: Setup java 17
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 17
- name: Setup gradle
uses: ./.github/workflows/gradle-cache
with:
encoded_local_properties: ${{ secrets.LOCAL_PROPERTIES }}
- name: Check spotless
run: ./gradlew spotlessCheck
- name: Check detekt
run: ./gradlew detekt
assemble:
needs: linter
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup java 17
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 17
- name: Setup gradle
uses: ./.github/workflows/gradle-cache
with:
encoded_local_properties: ${{ secrets.LOCAL_PROPERTIES }}
- name: Build debug
run: ./gradlew assembleDebug
- name: Upload apk
uses: actions/upload-artifact@v4
with:
name: build-outputs
path: app/build/outputs/apk
run-test:
needs: linter
runs-on: macos-latest
timeout-minutes: 45
env:
ApiLevel: 29
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup java 17
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 17
- name: Setup gradle
uses: ./.github/workflows/gradle-cache
with:
encoded_local_properties: ${{ secrets.LOCAL_PROPERTIES }}
- name: Run unit test
run: ./gradlew testDebugUnitTest
- name: Generate test results
uses: dorny/test-reporter@v1
if: success() || failure()
with:
name: Unit test results
path: '**/build/test-results/testDebugUnitTest/TEST-*.xml'
reporter: java-junit
fail-on-error: false
- name: Setup AVD cache
uses: actions/cache@v4
id: avd-cache
with:
path: |
~/.android/avd/*
~/.android/adb*
key: avd-${{ env.ApiLevel }}
- name: Create AVD and generate snapshot for caching
if: steps.avd-cache.outputs.cache-hit != 'true'
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: ${{ env.ApiLevel }}
force-avd-creation: false
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: false
script: echo "Generated AVD snapshot for caching."
- name: Run android tests
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: ${{ env.ApiLevel }}
force-avd-creation: false
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: true
script: ./gradlew connectedDebugAndroidTest
- name: Delete xml files without tests
run: find . -type f -path '**/build/outputs/androidTest-results/connected/debug/TEST-*.xml' -exec grep -q 'tests="0"' {} \; -exec rm -f {} \;
- name: Generate android test results
uses: dorny/test-reporter@v1
if: success() || failure()
with:
name: Android test results
path: '**/build/outputs/androidTest-results/connected/debug/TEST-*.xml'
reporter: java-junit
fail-on-error: false
- name: Generate jacoco report
run: ./gradlew jacocoMergeAllDebugReports
- uses: actions/upload-artifact@v4
with:
name: jacoco
path: build/reports/jacoco/jacocoMergeAllDebugReports
publish-coverage:
needs: run-test
runs-on: ubuntu-latest
timeout-minutes: 10
if: ${{ github.ref == 'refs/heads/master' }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: jacoco
- name: Generate Jacoco Badge
uses: cicirello/jacoco-badge-generator@v2
with:
jacoco-csv-file: jacocoMergeAllDebugReports.csv
badges-directory: html/badges
coverage-label: Coverage
- name: Publish coverage report to GitHub Pages
uses: JamesIves/github-pages-deploy-action@v4
with:
branch: coverage
folder: html