Browse Source

CI: add CodeQL workflow test

Add CodeQL workflow test to catch security vulnerabilities and enable
suggestion for better code.

All the dependency comes from the build-ubox workflow but all is built
on ubuntu instead of alpine image.

CodeQL queries enabled: security-and-quality

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Christian Marangi 1 month ago
parent
commit
510157049f
1 changed files with 88 additions and 0 deletions
  1. 88 0
      .github/workflows/codeql.yml

+ 88 - 0
.github/workflows/codeql.yml

@@ -0,0 +1,88 @@
+name: "CodeQL"
+
+on:
+  push:
+    branches: [ "master" ]
+  pull_request:
+    branches: [ "master" ]
+  schedule:
+    - cron: '31 12 * * 1'
+
+jobs:
+  analyze:
+    name: Analyze (c-cpp)
+    runs-on: ubuntu-latest
+    timeout-minutes: 360
+    permissions:
+      security-events: write
+
+    steps:
+      - name: Install Dependencies
+        run: |
+          sudo apt update && sudo apt install cmake make gcc pkg-config libjson-c-dev linux-headers-generic lua5.1 liblua5.1-0-dev
+
+      - name: Install libubox
+        run: |
+          git clone	--depth=1 https://git.openwrt.org/project/libubox.git
+
+          cd libubox
+          cmake -DBUILD_EXAMPLES=OFF
+          make
+          sudo make install
+
+      - name: Install libubus
+        run: |
+          git clone	--depth=1 https://git.openwrt.org/project/ubus.git
+
+          cd ubus
+          cmake -DBUILD_EXAMPLES=OFF
+          make
+          sudo make install
+
+      - name: Install libuci
+        run: |
+          git clone	--depth=1 https://git.openwrt.org/project/uci.git
+
+          cd uci
+          cmake .
+          make
+          sudo make install
+
+      - name: Install libudebug
+        run: |
+          git clone	--depth=1 https://github.com/jow-/ucode
+
+          cd ucode
+          cmake .
+          make
+          sudo make install
+
+      - name: Install libudebug
+        run: |
+          git clone	--depth=1 https://git.openwrt.org/project/udebug.git
+
+          cd udebug
+          cmake .
+          make
+          sudo make install
+
+      - name: Checkout repository
+        uses: actions/checkout@v4
+
+      # Initializes the CodeQL tools for scanning.
+      - name: Initialize CodeQL
+        uses: github/codeql-action/init@v3
+        with:
+          languages: c-cpp
+          queries: security-and-quality
+
+      - name: Install ubox
+        run: |
+          cmake .
+          make
+          sudo make install
+
+      - name: Perform CodeQL Analysis
+        uses: github/codeql-action/analyze@v3
+        with:
+          category: "/language:c-cpp"