CI: add CodeQL workflow tests
authorChristian Marangi <ansuelsmth@gmail.com>
Fri, 23 Feb 2024 23:44:12 +0000 (00:44 +0100)
committerChristian Marangi <ansuelsmth@gmail.com>
Sat, 24 Feb 2024 00:13:31 +0000 (01:13 +0100)
Add CodeQL workflow action for security testing.

Enable security-and-quality queries.

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..969b969
--- /dev/null
@@ -0,0 +1,43 @@
+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 python3 libjson-c-dev lua5.1 liblua5.1-0-dev
+
+      - 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 libubox
+        run: |
+          cmake -DBUILD_EXAMPLES=OFF
+          make
+          sudo make install
+
+      - name: Perform CodeQL Analysis
+        uses: github/codeql-action/analyze@v3
+        with:
+          category: "/language:c-cpp"