CI: add CodeQL workflow test
authorChristian Marangi <ansuelsmth@gmail.com>
Sat, 2 Mar 2024 16:23:47 +0000 (17:23 +0100)
committerChristian Marangi <ansuelsmth@gmail.com>
Sat, 2 Mar 2024 16:35:28 +0000 (17:35 +0100)
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>
.github/workflows/codeql.yml [new file with mode: 0644]

diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
new file mode 100644 (file)
index 0000000..afdb864
--- /dev/null
@@ -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"