Move the dependency check job from the quality workflow that runs on every PR to the nightly reports workflow. This sometimes flakes as it does a _lot_ of HTTP requests. It's less intrusive if that happens outside of the PR workflow. Also change the nightly job that runs tests to use LFS, so it actually has access to screenshots :) The sonar task is still broken, but it seems like an upstream bug: https://community.sonarsource.com/t/sonar-plugin-4-1-0-3113-4-2-0-3129-errors/91568
71 lines
2.4 KiB
YAML
71 lines
2.4 KiB
YAML
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="-Xmx3072m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError" -Dkotlin.daemon.jvm.options="-Xmx2560m" -Dkotlin.incremental=false
|
|
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 == 'vector-im/element-x-android' }}
|
|
steps:
|
|
- name: ⏬ Checkout with LFS
|
|
uses: actions/checkout@v3
|
|
with:
|
|
lfs: 'true'
|
|
|
|
- name: Use JDK 17
|
|
uses: actions/setup-java@v3
|
|
with:
|
|
distribution: 'temurin' # See 'Supported distributions' for available options
|
|
java-version: '17'
|
|
|
|
- name: ⚙️ Run unit & screenshot tests, generate kover report
|
|
run: ./gradlew koverMergedReport $CI_GRADLE_ARG_PROPERTIES -Pci-build=true
|
|
|
|
- name: ✅ Upload kover report
|
|
if: always()
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: kover-results
|
|
path: |
|
|
**/build/reports/kover/merged
|
|
|
|
- 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@v3
|
|
- name: Use JDK 17
|
|
uses: actions/setup-java@v3
|
|
with:
|
|
distribution: 'temurin' # See 'Supported distributions' for available options
|
|
java-version: '17'
|
|
- name: Configure gradle
|
|
uses: gradle/gradle-build-action@v2.4.2
|
|
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@v3
|
|
with:
|
|
name: dependency-analysis
|
|
path: build/reports/dependency-check-report.html
|