Skip to content

Restore CodeQL configuration workflow #1517

Description

@pedrazamiguez

Problem / Motivation

  • The CodeQL workflow (.github/workflows/codeql.yml) was previously removed in PR [SPLTRP-1246]: Upgrade Android SDK to 37 and update Version Catalog dependencies to latest stable versions #1260 due to Gradle plugin compatibility issues when upgrading the Android SDK to 37 and updating the Version Catalog (including Kotlin 2.4.10 and AGP 9.3.1).
  • As a result, we no longer see code security and quality issues directly under the GitHub repository's security tab.
  • This reduces our automated vulnerability detection capabilities on pull requests and pushes, relying solely on local static analysis and SonarQube.

Proposed Solution

  • Restore .github/workflows/codeql.yml from the git history (prior to its deletion in commit 9ca9c240a).
  • Update the workflow to use the latest github/codeql-action version (v3 or v4).
  • Feasibility Study & Fixes:
    • CodeQL intercepts the Kotlin compiler. With Kotlin 2.4.10 and AGP 9.3.1, we must ensure that the CodeQL extractor is compatible.
    • Apply necessary Gradle flags (e.g., -Dorg.gradle.daemon=false, --no-build-cache, --no-configuration-cache) in the workflow to ensure the CodeQL tracer properly captures all compiled files.
    • If a specific plugin (like KSP or Compose compiler) causes the semantic extraction to fail, investigate workarounds such as building a specific target or skipping certain verification tasks during the CodeQL build step.

Acceptance Criteria

  • .github/workflows/codeql.yml is restored and updated to use current action versions.
  • CodeQL successfully builds and analyzes the project on CI without Gradle plugin conflicts.
  • The GitHub Security tab populates CodeQL analysis results again.
  • All existing tests pass; new tests added where behaviour changes.
  • make fast-check passes during iterative development (~15–30s).
  • make check > build.log 2>&1 && echo "Check passed successfully" || (tail -n 100 build.log && exit 1) passes with 0 failures before merging.
  • No new detekt findings introduced.

Out of Scope

  • Fixing any new or pre-existing security vulnerabilities reported by CodeQL once it runs successfully (this issue is purely for restoring the CI infrastructure).

Related Issues / PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    configProject configuration

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions