Enable analytics on debug #2113
Workflow file for this run
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: Code Quality Checks | |
on: | |
pull_request: { } | |
push: | |
branches: [ main, develop ] | |
# Enrich gradle.properties for CI/CD | |
env: | |
GRADLE_OPTS: -Dorg.gradle.jvmargs="-Xmx3072m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError -XX:MaxMetaspaceSize=1g" -Dkotlin.daemon.jvm.options="-Xmx2560m" -Dkotlin.incremental=false | |
CI_GRADLE_ARG_PROPERTIES: --stacktrace -PpreDexEnable=false --max-workers 2 --no-daemon | |
jobs: | |
check: | |
name: Project Check Suite | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Run code quality check suite | |
run: ./tools/check/check_code_quality.sh | |
# Knit for all the modules (https://github.com/Kotlin/kotlinx-knit) | |
knit: | |
name: Knit | |
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/develop' }} | |
- name: Run knit | |
run: | | |
./gradlew knitCheck $CI_GRADLE_ARG_PROPERTIES | |
# Check the project: ktlint, detekt, lint | |
lint: | |
name: Android Linter | |
runs-on: ubuntu-latest | |
# Allow all jobs on main and develop. Just one per PR. | |
concurrency: | |
group: ${{ github.ref == 'refs/heads/main' && format('lint-main-{0}', github.sha) || github.ref == 'refs/heads/develop' && format('lint-develop-{0}', github.sha) || format('lint-{0}', github.ref) }} | |
cancel-in-progress: true | |
steps: | |
- name: Generate token | |
id: generate_token | |
uses: tibdex/github-app-token@v1 | |
with: | |
app_id: ${{ secrets.APP_ID_DANGERBOT }} | |
private_key: ${{ secrets.APP_PEM_DANGERBOT }} | |
- 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/develop' }} | |
- name: Run ktlint | |
run: | | |
./gradlew ktlintCheck $CI_GRADLE_ARG_PROPERTIES --continue | |
- name: Run detekt | |
if: always() | |
run: | | |
./gradlew detekt $CI_GRADLE_ARG_PROPERTIES | |
- name: Run lint | |
# Not always, if ktlint or detekt fail, avoid running the long lint check. | |
run: | | |
./gradlew vector-app:lintGplayBtchapWithdmvoipWithpinningRelease $CI_GRADLE_ARG_PROPERTIES | |
./gradlew vector-app:lintFdroidBtchapWithdmvoipWithoutpinningRelease $CI_GRADLE_ARG_PROPERTIES | |
- name: Upload reports | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: linting-report | |
path: | | |
*/build/reports/**/*.* | |
- name: Prepare Danger | |
if: always() | |
run: | | |
npm install --save-dev @babel/core | |
npm install --save-dev @babel/plugin-transform-flow-strip-types | |
yarn add danger-plugin-lint-report --dev | |
# TCHAP disable Danger lint check | |
# - name: Danger lint | |
# if: always() | |
# uses: danger/[email protected] | |
# with: | |
# args: "--dangerfile ./tools/danger/dangerfile-lint.js" | |
# env: | |
# DANGER_GITHUB_API_TOKEN: ${{ steps.generate_token.outputs.token }} | |
# Gradle dependency analysis using https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin | |
dependency-analysis: | |
name: Dependency analysis | |
runs-on: ubuntu-latest | |
# Allow all jobs on main and develop. Just one per PR. | |
concurrency: | |
group: ${{ github.ref == 'refs/heads/main' && format('dep-main-{0}', github.sha) || github.ref == 'refs/heads/develop' && format('dep-develop-{0}', github.sha) || format('dep-{0}', github.ref) }} | |
cancel-in-progress: true | |
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/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 |