Nightly reports #83
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=-Xmx9g -XX:MaxMetaspaceSize=512m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError -XX:+UseG1GC -Dkotlin.daemon.jvm.options=-Xmx4g | |
CI_GRADLE_ARG_PROPERTIES: --stacktrace -Dsonar.gradle.skipCompile=true --no-configuration-cache | |
jobs: | |
nightlyReports: | |
name: Create kover report artifact and upload sonar result. | |
runs-on: ubuntu-latest | |
# Skip in forks | |
if: ${{ github.repository == 'element-hq/element-x-android' }} | |
steps: | |
- name: ⏬ Checkout with LFS | |
uses: nschloe/[email protected] | |
- name: Use JDK 21 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' # See 'Supported distributions' for available options | |
java-version: '21' | |
- name: Configure gradle | |
uses: gradle/actions/setup-gradle@v4 | |
with: | |
cache-read-only: false | |
- name: ⚙️ Run unit tests, debug and release | |
run: ./gradlew test $CI_GRADLE_ARG_PROPERTIES | |
- name: 📸 Run screenshot tests | |
run: ./gradlew verifyPaparazziDebug $CI_GRADLE_ARG_PROPERTIES | |
- name: 📈 Generate kover report and verify coverage | |
run: ./gradlew :app:koverXmlReportGplayDebug :app:koverHtmlReportGplayDebug :app:koverVerifyAll $CI_GRADLE_ARG_PROPERTIES | |
- 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 assembleDebug createFullJarDebugTestFixtures :app:createFullJarGplayDebugTestFixtures $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 21 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' # See 'Supported distributions' for available options | |
java-version: '21' | |
- name: Configure gradle | |
uses: gradle/actions/setup-gradle@v4 | |
with: | |
cache-read-only: ${{ github.ref != 'refs/heads/develop' }} | |
- 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 |