name: "CodeQL Analysis" on: push: branches: [ "main", "dev" ] pull_request: branches: [ "main", "dev" ] schedule: - cron: '30 3 * * 1' # Runs at 03:30 UTC every Monday permissions: contents: read jobs: analyze: name: Analyze runs-on: ubuntu-latest permissions: actions: read contents: read security-events: write strategy: fail-fast: false matrix: language: [ 'java-kotlin' ] steps: - name: Checkout Repository uses: actions/checkout@v7 - name: Set up JDK 21 uses: actions/setup-java@v6 with: distribution: 'temurin' java-version: '21' - name: Setup Gradle uses: gradle/actions/setup-gradle@v6 with: validate-wrappers: true cache-provider: basic # keep 100% MIT — avoid proprietary gradle-actions-caching - name: Grant Execute Permission for Gradlew run: chmod +x gradlew - name: Initialize CodeQL uses: github/codeql-action/init@v4 with: languages: ${{ matrix.language }} build-mode: manual tools: https://github.com/github/codeql-action/releases/download/codeql-bundle-v2.26.2/codeql-bundle-linux64.tar.gz - name: Build Codebase (Compile Only) run: | ./gradlew compileDebugSources --no-daemon --no-build-cache - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v4 with: category: "/language:${{matrix.language}}"