Nightly reports #27
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Nightly reports | |
on: | |
workflow_dispatch: | |
schedule: | |
# Every nights at 5 | |
- cron: "0 5 * * *" | |
# Enrich gradle.properties for CI/CD | |
env: | |
GRADLE_OPTS: -Dorg.gradle.jvmargs="-Xmx3g -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError" -Dkotlin.daemon.jvm.options="-Xmx2560m" -Dkotlin.incremental=false -XX:+UseParallelGC | |
CI_GRADLE_ARG_PROPERTIES: --stacktrace -PpreDexEnable=false --max-workers 4 | |
jobs: | |
nightlyReports: | |
name: Create kover report artifact and upload sonar result. | |
runs-on: ubuntu-latest | |
if: ${{ github.repository == 'element-hq/compound-android' }} | |
steps: | |
- name: ⏬ Checkout with LFS | |
uses: nschloe/action-cached-lfs-checkout@v1.2.2 | |
- name: Use JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' # See 'Supported distributions' for available options | |
java-version: '17' | |
- name: ⚙️ Run unit tests | |
run: ./gradlew testDebugUnitTest $CI_GRADLE_ARG_PROPERTIES | |
- name: 📸 Run screenshot tests | |
run: ./gradlew :compound:verifyRoborazziDebug $CI_GRADLE_ARG_PROPERTIES | |
- name: 📈 Generate kover report and verify coverage | |
run: ./gradlew :compound:koverHtmlReport :compound:koverXmlReport :compound:koverVerify $CI_GRADLE_ARG_PROPERTIES -Pci-build=true | |
- name: ✅ Upload kover report | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: kover-results | |
path: | | |
**/build/reports/kover | |
- name: 🔊 Publish results to Sonar | |
env: | |
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
ORG_GRADLE_PROJECT_SONAR_LOGIN: ${{ secrets.SONAR_TOKEN }} | |
if: ${{ always() && env.SONAR_TOKEN != '' && env.ORG_GRADLE_PROJECT_SONAR_LOGIN != '' }} | |
run: ./gradlew sonar $CI_GRADLE_ARG_PROPERTIES | |
# Gradle dependency analysis using https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin | |
dependency-analysis: | |
name: Dependency analysis | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Use JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' # See 'Supported distributions' for available options | |
java-version: '17' | |
- name: Configure gradle | |
uses: gradle/actions/setup-gradle@v3 | |
with: | |
cache-read-only: ${{ github.ref != 'refs/heads/main' }} | |
- name: Dependency analysis | |
run: ./gradlew dependencyCheckAnalyze $CI_GRADLE_ARG_PROPERTIES | |
- name: Upload dependency analysis | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: dependency-analysis | |
path: build/reports/dependency-check-report.html |