Skip to content

Commit 8b5add6

Browse files
committed
Fix #161, Reuse CodeQL, Static Analysis, and Format Check
1 parent d009197 commit 8b5add6

File tree

3 files changed

+14
-187
lines changed

3 files changed

+14
-187
lines changed

.github/workflows/codeql-build.yml

Lines changed: 8 additions & 111 deletions
Original file line numberDiff line numberDiff line change
@@ -1,117 +1,14 @@
1-
name: "CodeQL Analysis"
1+
name: CodeQl Analysis
22

33
on:
44
push:
55
pull_request:
6-
branches:
7-
- main
8-
9-
env:
10-
SIMULATION: native
11-
ENABLE_UNIT_TESTS: true
12-
OMIT_DEPRECATED: true
13-
BUILDTYPE: release
6+
147

158
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/cFS/.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
73-
74-
CodeQL-Coding-Standard-Build:
75-
needs: check-for-duplicates
76-
if: ${{ needs.check-for-duplicates.outputs.should_skip != 'true' }}
77-
runs-on: ubuntu-18.04
78-
timeout-minutes: 15
79-
80-
steps:
81-
# Checks out a copy of your repository on the ubuntu-latest machine
82-
- name: Checkout bundle
83-
uses: actions/checkout@v2
84-
with:
85-
repository: nasa/cFS
86-
submodules: true
87-
88-
- name: Checkout submodule
89-
uses: actions/checkout@v2
90-
with:
91-
path: apps/sample_app
92-
93-
- name: Check versions
94-
run: git submodule
95-
96-
- name: Initialize CodeQL
97-
uses: github/codeql-action/init@v1
98-
with:
99-
languages: c
100-
config-file: nasa/cFS/.github/codeql/codeql-coding-standard.yml@main
101-
102-
# Setup the build system
103-
- name: Set up for build
104-
run: |
105-
cp ./cfe/cmake/Makefile.sample Makefile
106-
cp -r ./cfe/cmake/sample_defs sample_defs
107-
make prep
108-
109-
# Build the code
110-
- name: Build
111-
run: |
112-
make sample_app
113-
make native/default_cpu1/apps/sample_app/unit-test/
114-
115-
- name: Perform CodeQL Analysis
116-
uses: github/codeql-action/analyze@v1
117-
9+
codeql:
10+
name: Codeql Analysis
11+
uses: nasa/cFS/.github/workflows/codeql-build.yml@main
12+
with:
13+
make-prep: 'make prep'
14+
make: 'make sample_app && make native/default_cpu1/apps/sample_app/unit-test/'

.github/workflows/format-check.yml

Lines changed: 4 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,12 @@
11
name: Format Check
22

3-
# Run on main push and pull requests
3+
# Run on all push and pull requests
44
on:
55
push:
6-
branches:
7-
- main
86
pull_request:
97

108
jobs:
11-
12-
static-analysis:
9+
format-check:
1310
name: Run format check
14-
runs-on: ubuntu-18.04
15-
timeout-minutes: 15
16-
17-
steps:
18-
19-
- name: Install format checker
20-
run: |
21-
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
22-
sudo add-apt-repository 'deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-10 main'
23-
sudo apt-get update && sudo apt-get install clang-format-10
24-
25-
- name: Checkout bundle
26-
uses: actions/checkout@v2
27-
with:
28-
repository: nasa/cFS
29-
30-
- name: Checkout
31-
uses: actions/checkout@v2
32-
with:
33-
path: repo
34-
35-
- name: Generate format differences
36-
run: |
37-
cd repo
38-
find . -name "*.[ch]" -exec clang-format-10 -i -style=file {} +
39-
git diff > $GITHUB_WORKSPACE/style_differences.txt
40-
41-
- name: Archive Static Analysis Artifacts
42-
uses: actions/upload-artifact@v2
43-
with:
44-
name: style_differences
45-
path: style_differences.txt
46-
47-
- name: Error on differences
48-
run: |
49-
if [[ -s style_differences.txt ]];
50-
then
51-
cat style_differences.txt
52-
exit -1
53-
fi
11+
uses: nasa/cFS/.github/workflows/format-check.yml@main
12+
Lines changed: 2 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,11 @@
11
name: Static Analysis
22

3-
# Run on main push and pull requests
3+
# Run on all push and pull requests
44
on:
55
push:
6-
branches:
7-
- main
86
pull_request:
97

108
jobs:
11-
129
static-analysis:
1310
name: Run cppcheck
14-
runs-on: ubuntu-18.04
15-
timeout-minutes: 15
16-
17-
steps:
18-
19-
- name: Install cppcheck
20-
run: sudo apt-get install cppcheck -y
21-
22-
- name: Checkout code
23-
uses: actions/checkout@v2
24-
25-
- name: Run general cppcheck
26-
run: cppcheck --force --inline-suppr --quiet . 2> cppcheck_err.txt
27-
28-
- name: Archive Static Analysis Artifacts
29-
uses: actions/upload-artifact@v2
30-
with:
31-
name: cppcheck-err
32-
path: ./cppcheck_err.txt
33-
34-
- name: Check for errors
35-
run: |
36-
if [[ -s cppcheck_err.txt ]];
37-
then
38-
cat cppcheck_err.txt
39-
exit -1
40-
fi
11+
uses: nasa/cFS/.github/workflows/static-analysis.yml@main

0 commit comments

Comments
 (0)