# Analyzes the code using GitHub's default CodeQL query database.
# Identified issues are registered with GitHub's code scanning dashboard. When
# a pull request is analyzed, any offending lines are annotated. See
# https://codeql.github.com for details.
name: CodeQL analysis
on:
  pull_request:
  push:
    branches: [ master ]
  schedule:
    - cron: '0 4 * * 1'
permissions:
  contents: read
jobs:
  analyze:
    strategy:
      matrix:
        language: [ java, ruby ]
    permissions:
      contents: read
      security-events: write
    runs-on: ubuntu-24.04
    steps:
      - name: Install Harden-Runner
        uses: step-security/harden-runner@c6295a65d1254861815972266d5933fd6e532bdf # v2.11.1
        with:
          disable-sudo: true
          egress-policy: block
          allowed-endpoints: >
            api.adoptium.net:443
            api.github.com:443
            github.com:443
            objects.githubusercontent.com:443
            repo.maven.apache.org:443
            uploads.github.com:443
      - name: Check out code and set up JDK and Maven
        uses: s4u/setup-maven-action@4f7fb9d9675e899ca81c6161dadbba0189a4ebb1 # v1.18.0
        with:
          java-version: 17.0.13
          java-distribution: temurin
          maven-version: 3.9.9
      - name: Initialize CodeQL
        uses: github/codeql-action/init@5f8171a638ada777af81d42b55959a643bb29017 # v3.28.12
        with:
          languages: ${{ matrix.language }}
      - name: Perform minimal build
        if: matrix.language == 'java'
        run: mvn -T1C clean package -DskipTests -Dverification.skip
      - name: Perform CodeQL analysis
        uses: github/codeql-action/analyze@5f8171a638ada777af81d42b55959a643bb29017 # v3.28.12
        with:
          category: /language:${{ matrix.language }}
