name: Quality check on: push: branches: [ "develop", "main" ] pull_request: branches: [ "develop", "main" ] types: [ opened, synchronize, reopened ] schedule: - cron: '17 8 * * 3' # Declare default permissions as read only. permissions: read-all jobs: analyze_flutter: name: Flutter analysis runs-on: ubuntu-latest steps: - name: Harden Runner uses: step-security/harden-runner@5ef0c079ce82195b2a36a210272d6b661572d83e # v2.14.2 with: egress-policy: audit - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Get Flutter packages run: ./flutterw pub get - name: Generate app localizations run: ./flutterw gen-l10n - name: Static analysis. run: ./flutterw analyze - name: Unit tests. run: ./flutterw test analyze_codeql: name: CodeQL analysis (${{ matrix.language }}) runs-on: ubuntu-latest permissions: # required for all workflows security-events: write # required to fetch internal or private CodeQL packs packages: read strategy: fail-fast: false matrix: include: - language: java-kotlin build-mode: manual steps: - name: Harden Runner uses: step-security/harden-runner@5ef0c079ce82195b2a36a210272d6b661572d83e # v2.14.2 with: egress-policy: audit # Building relies on the Android Gradle plugin, # which requires a modern Java version (not the default one). - name: Set up JDK for Android Gradle plugin uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0 with: distribution: 'temurin' java-version: '21' - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL uses: github/codeql-action/init@9e907b5e64f6b83e7804b09294d44122997950d6 # v4.32.3 with: languages: ${{ matrix.language }} build-mode: ${{ matrix.build-mode }} - if: matrix.build-mode == 'manual' shell: bash # build in profile mode, instead of release, # so that setting up signing environment variables is not required run: | scripts/apply_flavor_play.sh ./flutterw build apk --profile -t lib/main_play.dart --flavor play - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@9e907b5e64f6b83e7804b09294d44122997950d6 # v4.32.3 with: category: "/language:${{matrix.language}}"