CI: Add Clang tidy #9
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Run clang-tidy | |
on: | |
pull_request: | |
push: | |
branches: | |
- master | |
jobs: | |
build: | |
name: Run clang-tidy | |
runs-on: ubuntu-20.04 | |
container: espressif/idf:latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: 'true' | |
- name: Install libtinfo (esp-clang dependency) | |
run: | | |
export DEBIAN_FRONTEND=noninteractive | |
apt update && apt-get install -y libtinfo5 | |
- name: Install esp-clang | |
run: | | |
${IDF_PATH}/tools/idf_tools.py --non-interactive install esp-clang | |
- name: Install clang-tidy-sarif | |
run: | | |
curl -sSL https://github.com/psastras/sarif-rs/releases/download/clang-tidy-sarif-v0.3.3/clang-tidy-sarif-x86_64-unknown-linux-gnu -o clang-tidy-sarif | |
chmod +x clang-tidy-sarif | |
- name: Install pyclang | |
run: | | |
. ${IDF_PATH}/export.sh | |
pip install pyclang~=0.2.0 | |
- name: Run code analysis | |
shell: bash | |
env: | |
IDF_TOOLCHAIN: clang | |
IDF_TARGET: esp32s3 | |
working-directory: device/esp_tinyusb/test_app | |
run: | | |
. ${IDF_PATH}/export.sh | |
idf.py clang-check --run-clang-tidy-py run-clang-tidy | |
cp warnings.txt warnings_device.txt ../../../ | |
cd ../../../host/class/hid/usb_host_hid/test_app | |
idf.py clang-check --run-clang-tidy-py run-clang-tidy | |
cp warnings.txt warnings_host.txt ../../../ | |
- name: Convert clang-tidy results into SARIF output | |
run: | | |
export PATH=$PWD:$PATH | |
./clang-tidy-sarif -o results_device.sarif.raw warnings_device.txt | |
python3 $GITHUB_WORKSPACE/.github/filter_sarif.py -o results_device.sarif --include-prefix ${GITHUB_WORKSPACE}/ results_device.sarif.raw | |
./clang-tidy-sarif -o results_host.sarif.raw warnings_host.txt | |
python3 $GITHUB_WORKSPACE/.github/filter_sarif.py -o results_host.sarif --include-prefix ${GITHUB_WORKSPACE}/ results_host.sarif.raw | |
- uses: actions/upload-artifact@v2 | |
with: | |
path: | | |
warnings_device.txt | |
warnings_host.txt | |
results_device.sarif | |
results_host.sarif | |
results_device.sarif.raw | |
results_host.sarif.raw | |
- name: Upload SARIF device file | |
uses: github/codeql-action/upload-sarif@v2 | |
with: | |
sarif_file: results_device.sarif | |
category: clang-tidy | |
- name: Upload SARIF host file | |
uses: github/codeql-action/upload-sarif@v2 | |
with: | |
sarif_file: results_host.sarif | |
category: clang-tidy | |