Skip to content

Commit 8daf5b4

Browse files
committed
Fix #146, Implement Coding Standard CodeQL
1 parent 1c32ed4 commit 8daf5b4

File tree

3 files changed

+90
-3
lines changed

3 files changed

+90
-3
lines changed
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
name: "CodeQL Coding Standard Configuration File"
2+
3+
disable-default-queries: true
4+
5+
queries:
6+
- name: JPL Rules
7+
uses: ./codeql/cpp/ql/src/JPL_C
8+
- name: MISRA Rule 9-5-1
9+
uses: ./codeql/cpp/ql/src/jsf/4.20 Unions and Bit Fields/AV Rule 153.ql
10+
- name: MISRA Rule 5-18-1
11+
uses: ./codeql/cpp/ql/src/jsf/4.21 Operators/AV Rule 168.ql
12+
- name: MISRA 6-2-2
13+
uses: ./codeql/cpp/ql/src/jsf/4.25 Expressions/AV Rule 202.ql
14+
- name: MISRA Rule 5-14-1
15+
uses: ./codeql/cpp/ql/src/jsf/4.21 Operators/AV Rule 165.ql
16+
- name: MISRA Rule 5-3-2
17+
uses: ./codeql/cpp/ql/src/jsf/4.21 Operators/AV Rule 165.ql
18+
- name: MISRA Rule 7-5-2
19+
uses: ./codeql/cpp/ql/src/jsf/4.22 Pointers and References/AV Rule 173.ql

.github/codeql/codeql-security.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
name: "CodeQL Security Configuration File"
2+
3+
queries:
4+
- name: Security and Quality
5+
uses: security-and-quality
6+
- name: Security Extended
7+
uses: security-extended
8+

.github/workflows/codeql-build.yml

Lines changed: 63 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ name: "CodeQL Analysis"
22

33
on:
44
push:
5+
pull_request:
56
branches:
67
- main
7-
pull_request:
88

99
env:
1010
SIMULATION: native
@@ -13,8 +13,67 @@ env:
1313
BUILDTYPE: release
1414

1515
jobs:
16+
#Checks for duplicate actions. Skips push actions if there is a matching or duplicate pull-request action.
17+
check-for-duplicates:
18+
runs-on: ubuntu-latest
19+
# Map a step output to a job output
20+
outputs:
21+
should_skip: ${{ steps.skip_check.outputs.should_skip }}
22+
steps:
23+
- id: skip_check
24+
uses: fkirc/skip-duplicate-actions@master
25+
with:
26+
concurrent_skipping: 'same_content'
27+
skip_after_successful_duplicate: 'true'
28+
do_not_skip: '["pull_request", "workflow_dispatch", "schedule"]'
29+
30+
CodeQL-Security-Build:
31+
needs: check-for-duplicates
32+
if: ${{ needs.check-for-duplicates.outputs.should_skip != 'true' }}
33+
runs-on: ubuntu-18.04
34+
timeout-minutes: 15
35+
36+
steps:
37+
# Checks out a copy of your repository on the ubuntu-latest machine
38+
- name: Checkout bundle
39+
uses: actions/checkout@v2
40+
with:
41+
repository: nasa/cFS
42+
submodules: true
43+
44+
- name: Checkout submodule
45+
uses: actions/checkout@v2
46+
with:
47+
path: apps/sample_app
48+
49+
- name: Check versions
50+
run: git submodule
51+
52+
- name: Initialize CodeQL
53+
uses: github/codeql-action/init@v1
54+
with:
55+
languages: c
56+
config-file: nasa/sample_app/.github/codeql/codeql-security.yml@main
57+
58+
# Setup the build system
59+
- name: Set up for build
60+
run: |
61+
cp ./cfe/cmake/Makefile.sample Makefile
62+
cp -r ./cfe/cmake/sample_defs sample_defs
63+
make prep
64+
65+
# Build the code
66+
- name: Build
67+
run: |
68+
make sample_app
69+
make native/default_cpu1/apps/sample_app/unit-test/
70+
71+
- name: Perform CodeQL Analysis
72+
uses: github/codeql-action/analyze@v1
1673

17-
CodeQL-Build:
74+
CodeQL-Coding-Standard-Build:
75+
needs: check-for-duplicates
76+
if: ${{ needs.check-for-duplicates.outputs.should_skip != 'true' }}
1877
runs-on: ubuntu-18.04
1978
timeout-minutes: 15
2079

@@ -38,7 +97,7 @@ jobs:
3897
uses: github/codeql-action/init@v1
3998
with:
4099
languages: c
41-
queries: +security-extended, security-and-quality
100+
config-file: nasa/sample_app/.github/codeql/codeql-coding-standard.yml@main
42101

43102
# Setup the build system
44103
- name: Set up for build
@@ -55,3 +114,4 @@ jobs:
55114
56115
- name: Perform CodeQL Analysis
57116
uses: github/codeql-action/analyze@v1
117+

0 commit comments

Comments
 (0)