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@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1 with: egress-policy: audit - name: Checkout repository uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 - name: Get Flutter packages run: scripts/pub_get_all.sh - 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@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1 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@b36c23c0d998641eff861008f374ee103c25ac73 # v4.4.0 with: distribution: 'temurin' java-version: '21' - name: Checkout repository uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL uses: github/codeql-action/init@e2b3eafc8d227b0241d48be5f425d47c2d750a13 # v3.26.10 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@e2b3eafc8d227b0241d48be5f425d47c2d750a13 # v3.26.10 with: category: "/language:${{matrix.language}}"