name: 📊 CodeQL run-name: | ${{ github.event_name == 'schedule' && '⏰ Scheduled CodeQL run' || '' }} ${{ github.event_name == 'push' && format('📊 Pushed CodeQL run - {0}', github.event.head_commit.message) || '' }} ${{ github.event_name == 'pull_request' && format('📊 CodeQL run for PR {0} - {1}', github.event.pull_request.number, github.event.pull_request.title) || github.event.head_commit.message }} on: push: branches: [ "master" ] pull_request: branches: [ "master" ] schedule: - cron: "36 18 * * 4" jobs: analyze: name: 📊 Analyze runs-on: ubuntu-latest permissions: actions: read contents: read security-events: write strategy: fail-fast: false matrix: language: [ python, javascript, cpp ] steps: - name: ⬇ Checkout uses: actions/checkout@v4 with: submodules: recursive - name: 📥 Install Packages (cpp) if: ${{ matrix.language == 'cpp' }} run: | sudo apt-get update sudo apt-get install --yes git build-essential qtbase5-dev libqt5serialport5-dev libqt5websockets5-dev libqt5sql5-sqlite libqt5svg5-dev libqt5x11extras5-dev libusb-1.0-0-dev python3-dev libcec-dev libxcb-image0-dev libxcb-util0-dev libxcb-shm0-dev libxcb-render0-dev libxcb-randr0-dev libxrandr-dev libxrender-dev libavahi-core-dev libavahi-compat-libdnssd-dev libasound2-dev libturbojpeg0-dev libjpeg-dev libssl-dev libftdi1-dev - name: Temporarily downgrade CMake to 3.28.3 # Please remove if GitHub has updated Cmake (greater than 3.30.0) uses: jwlawson/actions-setup-cmake@v2 with: cmake-version: '3.28.3' - name: 🔁 Initialize CodeQL uses: github/codeql-action/init@v3 with: languages: ${{ matrix.language }} queries: +security-and-quality config-file: ./.github/config/codeql.yml - name: 👷 Autobuild uses: github/codeql-action/autobuild@v3 - name: 🏃 Perform CodeQL Analysis uses: github/codeql-action/analyze@v3 with: category: "/language:${{ matrix.language }}" upload: False output: sarif-results - name: 🆔 Filter SARIF uses: advanced-security/filter-sarif@v1 with: patterns: | -**/dependencies/** -**/moc_*.cpp -**/libsrc/flatbufserver/hyperion_request_generated.h -**/libsrc/protoserver/message.pb.cc -**/libsrc/protoserver/message.pb.h input: sarif-results/${{ matrix.language }}.sarif output: sarif-results/${{ matrix.language }}.sarif - name: 📦 Upload SARIF uses: github/codeql-action/upload-sarif@v3 with: sarif_file: sarif-results/${{ matrix.language }}.sarif - name: 📦 Upload loc as a Build Artifact uses: actions/upload-artifact@v4 with: name: ${{ matrix.language }}.sarif path: sarif-results retention-days: 1