Skip to content

changelogs/1962636.txt #1067

changelogs/1962636.txt

changelogs/1962636.txt #1067

name: static-analysis
on:
push:
branches:
- "*"
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
CACHE_VERSION: 1
JAVA_VERSION: 17
JAVA_DISTRIBUTION: zulu
jobs:
static-checks:
name: ${{ matrix.task }}
runs-on: ubuntu-latest
timeout-minutes: 15
strategy:
fail-fast: false # let all three run even if one fails
matrix:
task: [ checkstyle, detekt, ktlint ]
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 1
submodules: true
- uses: actions/setup-java@v5
with:
distribution: ${{ env.JAVA_DISTRIBUTION }}
java-version: ${{ env.JAVA_VERSION }}
- run: ./ci_clear_gradle_cache.sh
- uses: actions/cache@v5
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ env.CACHE_VERSION }}-${{ hashFiles('**/*.gradle.kts', '**/gradle/wrapper/gradle-wrapper.properties', '**/libs.versions.toml') }}
restore-keys: |
${{ runner.os }}-gradle-${{ env.CACHE_VERSION }}-
- name: Decode secrets
env:
LOCAL_PROPERTIES: ${{ secrets.LOCAL_PROPERTIES }}
LOCAL_PROPERTIES_CLOUDLIB: ${{ secrets.LOCAL_PROPERTIES_CLOUDLIB }}
LOCAL_PROPERTIES_UTILSLIB: ${{ secrets.LOCAL_PROPERTIES_UTILSLIB }}
GOOGLE_PLAY_JSON_DEVELOPMENT: ${{ secrets.GOOGLE_PLAY_JSON_DEVELOPMENT }}
run: |
echo "${LOCAL_PROPERTIES}" | base64 -d > local.properties
echo "${LOCAL_PROPERTIES_CLOUDLIB}" | base64 -d > QuoteUnquote.cloudLib/cloudLib/local.properties
echo "${LOCAL_PROPERTIES_UTILSLIB}" | base64 -d > QuoteUnquote.utilsLib/utilsLib/local.properties
echo "${GOOGLE_PLAY_JSON_DEVELOPMENT}" | base64 -d > app/google-services.json
- name: Run ${{ matrix.task }}
run: ./gradlew ${{ matrix.task }}
lint:
name: ${{ matrix.task }}
needs: static-checks
runs-on: ubuntu-latest
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
include:
- task: lintGooglePlayDebug
needs_google_services: true
- task: lintFdroidDebug
needs_google_services: false # F-Droid flavour has no Play dependency
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 1
submodules: true
- uses: actions/setup-java@v5
with:
distribution: ${{ env.JAVA_DISTRIBUTION }}
java-version: ${{ env.JAVA_VERSION }}
- run: ./ci_clear_gradle_cache.sh
- uses: actions/cache@v5
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ env.CACHE_VERSION }}-${{ hashFiles('**/*.gradle.kts', '**/gradle/wrapper/gradle-wrapper.properties', '**/libs.versions.toml') }}
restore-keys: |
${{ runner.os }}-gradle-${{ env.CACHE_VERSION }}-
- name: Decode secrets
env:
LOCAL_PROPERTIES: ${{ secrets.LOCAL_PROPERTIES }}
LOCAL_PROPERTIES_CLOUDLIB: ${{ secrets.LOCAL_PROPERTIES_CLOUDLIB }}
LOCAL_PROPERTIES_UTILSLIB: ${{ secrets.LOCAL_PROPERTIES_UTILSLIB }}
run: |
echo "${LOCAL_PROPERTIES}" | base64 -d > local.properties
echo "${LOCAL_PROPERTIES_CLOUDLIB}" | base64 -d > QuoteUnquote.cloudLib/cloudLib/local.properties
echo "${LOCAL_PROPERTIES_UTILSLIB}" | base64 -d > QuoteUnquote.utilsLib/utilsLib/local.properties
- name: Decode google-services.json
if: matrix.needs_google_services
env:
GOOGLE_PLAY_JSON_DEVELOPMENT: ${{ secrets.GOOGLE_PLAY_JSON_DEVELOPMENT }}
run: echo "${GOOGLE_PLAY_JSON_DEVELOPMENT}" | base64 -d > app/google-services.json
- name: Run ${{ matrix.task }}
run: ./gradlew ${{ matrix.task }}