-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
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 <[email protected]>
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 | ||
This comment has been minimized.
Sorry, something went wrong.
This comment has been minimized.
Sorry, something went wrong.
Ansuel
Author
Member
|
||
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" |
Just FYI
openwrt/libubox#2
openwrt/procd#2
and we started to discuss this a bit https://patchwork.ozlabs.org/project/openwrt/patch/[email protected]/#3075163
If you imagine and actually consider, that there is 30+ of similar C based projects (and usually 2 maintenance release/branches), I'm sure, that you would agree, that it would make sense to take a step back now and think about future a bit:
So it really should be some shared container(s) and shared GitHub actions, like we've now for the main OpenWrt repo.
We should probably consider a dedicated CI meeting and discuss this further?