Run PVS-Studio static analyzer as part of CI/CD

This commit is contained in:
Nikolaj Schlej 2022-09-02 22:09:47 +02:00
parent 3977fcaed9
commit 787e02181a
2 changed files with 49 additions and 4 deletions

View file

@ -192,13 +192,13 @@ jobs:
JOB_TYPE: COVERITY
HAS_QT: 1
if: github.repository_owner == 'LongSoft' && github.event_name != 'pull_request'
name: Coverity
name: Coverity Static Analysis
runs-on: ubuntu-latest
steps:
- name: Install Qt
uses: jurplel/install-qt-action@v3
with:
version: '6.2.4'
version: '6.3.1'
host: 'linux'
target: 'desktop'
@ -215,3 +215,47 @@ jobs:
COVERITY_SCAN_TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
COVERITY_SCAN_EMAIL: ${{ secrets.COVERITY_SCAN_EMAIL }}
COVERITY_BUILD_COMMAND: ./unixbuild.sh --build
analyze_pvs_studio:
if: github.repository_owner == 'LongSoft' && github.event_name != 'pull_request'
name: PVS-Studio Static Analysis
runs-on: ubuntu-latest
steps:
- name: Install Qt
uses: jurplel/install-qt-action@v3
with:
version: '6.3.1'
host: 'linux'
target: 'desktop'
- name: Check out
uses: actions/checkout@v2
- name: Install PVS-Studio
run: |
wget -q -O - https://files.pvs-studio.com/etc/pubkey.txt \
| sudo apt-key add -
sudo wget -O /etc/apt/sources.list.d/viva64.list \
https://files.pvs-studio.com/etc/viva64.list
sudo apt update
sudo apt install pvs-studio
pvs-studio-analyzer credentials ${{ secrets.PVS_STUDIO_CREDENTIALS }}
- name: Build
run: |
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=On -B build UEFITool
cmake --build build -j
- name: Analyze
run: |
pvs-studio-analyzer analyze -f build/compile_commands.json -j
- name: Convert report
run: |
plog-converter -t sarif -o pvs-report.sarif PVS-Studio.log
- name: Publish report
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: pvs-report.sarif
category: PVS-Studio

View file

@ -139,7 +139,7 @@ ADD_DEFINITIONS(
SET_SOURCE_FILES_PROPERTIES(icons/uefitool.icns PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
ADD_EXECUTABLE(UEFITool ${PROJECT_HEADERS} ${PROJECT_FORMS} ${PROJECT_SOURCES})
ADD_EXECUTABLE(UEFITool ${PROJECT_HEADERS} ${PROJECT_FORMS} ${PROJECT_SOURCES})
TARGET_INCLUDE_DIRECTORIES(UEFITool PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}")
@ -148,4 +148,5 @@ TARGET_LINK_LIBRARIES(UEFITool PRIVATE Qt6::Widgets)
SET_TARGET_PROPERTIES(UEFITool PROPERTIES
WIN32_EXECUTABLE ON
MACOSX_BUNDLE ON
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_SOURCE_DIR}/Info.plist")
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_SOURCE_DIR}/Info.plist"
)