Files
hidapi/.github/workflows/checks.yml
T
2023-05-14 23:46:17 +03:00

125 lines
4.1 KiB
YAML

name: Checks
run-name: Code checks for ${{ github.ref_name }}
on:
workflow_dispatch:
jobs:
coverity-macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
with:
path: src
- name: Install dependencies
run: brew install ninja
- name: Configure
run: |
cmake -B build -S src -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DHIDAPI_WITH_TESTS=ON -DHIDAPI_BUILD_HIDTEST=ON -DCMAKE_C_COMPILER=clang
- name: Get and configure Coverity
run: |
curl https://scan.coverity.com/download/cxx/Darwin --output coverity.dmg --data "token=${{ secrets.COVERITY_SCAN_TOKEN }}&project=hidapi"
hdiutil attach coverity.dmg -mountroot coverity
export COV_DIR_NAME=$(ls -1 --color=never coverity)
mkdir cov-root
cp ./coverity/${COV_DIR_NAME}/${COV_DIR_NAME}.sh cov-root/
cd cov-root/
./${COV_DIR_NAME}.sh
./bin/cov-configure --clang
echo "$(pwd)/bin" >> $GITHUB_PATH
- name: Build with Coverity
working-directory: build
run: cov-build --dir cov-int ninja
- name: Backup Coverity logs
uses: actions/upload-artifact@v3
with:
name: coverity-logs-macos
path: build/cov-int
retention-days: 7
- name: Submit results to Coverity Scan
working-directory: build
run: |
tar -czf cov-int.tar.gz cov-int
curl --form token=${{ secrets.COVERITY_SCAN_TOKEN }} \
--form email=${{ secrets.COVERITY_SCAN_EMAIL }} \
--form file=@cov-int.tar.gz \
--form version="$GITHUB_SHA" \
--form description="Automatic macOS build" \
https://scan.coverity.com/builds?project=hidapi
coverity-ubuntu:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
path: src
- name: Install dependencies
run: sudo apt install libudev-dev libusb-1.0-0-dev ninja-build
- name: Configure
run: |
cmake -B build -S src -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DHIDAPI_WITH_TESTS=ON -DHIDAPI_BUILD_HIDTEST=ON -DCMAKE_C_COMPILER=gcc
- uses: vapier/coverity-scan-action@v1
with:
email: ${{ secrets.COVERITY_SCAN_EMAIL }}
token: ${{ secrets.COVERITY_SCAN_TOKEN }}
project: hidapi
command: ninja
working-directory: build
description: 'Automatic Linux build'
- name: Backup Coverity logs
uses: actions/upload-artifact@v3
with:
name: coverity-logs-linux
path: build/cov-int
retention-days: 7
coverity-windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
with:
path: src
- name: Setup MSVC
uses: TheMrMilchmann/setup-msvc-dev@v2.0.0
with:
arch: x64
- name: Configure
run: |
cmake -B build -S src -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DHIDAPI_WITH_TESTS=ON -DHIDAPI_BUILD_HIDTEST=ON
- name: Get and configure Coverity
run: |
Invoke-WebRequest -Uri https://scan.coverity.com/download/cxx/win64 -OutFile coverity.zip -Method Post -Body @{token='${{ secrets.COVERITY_SCAN_TOKEN }}';project='hidapi'}
Expand-Archive coverity.zip -DestinationPath cov-root
$cov_root=Get-ChildItem -Path 'cov-root'
$Env:PATH += ";$($cov_root.FullName)\bin"
cov-configure -msvc
echo "$($cov_root.FullName)\bin" >> $Env:GITHUB_PATH
- name: Build with Coverity
working-directory: build
run: cov-build --dir cov-int nmake
- name: Backup Coverity logs
uses: actions/upload-artifact@v3
with:
name: coverity-logs-windows
path: build/cov-int
retention-days: 7
- name: Submit results to Coverity Scan
working-directory: build
run: |
tar -czf cov-int.tar.gz cov-int
Invoke-RestMethod -Uri 'https://scan.coverity.com/builds?project=hidapi' `
-Method Post -Form @{ `
email='${{ secrets.COVERITY_SCAN_EMAIL }}'; `
token='${{ secrets.COVERITY_SCAN_TOKEN }}'; `
file=Get-Item 'cov-int.tar.gz'; `
version=$Env:GITHUB_SHA; `
description='Automatic Windows build' `
}