99 lines
3.2 KiB
YAML
99 lines
3.2 KiB
YAML
name: CI Linux Coverity
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
paths:
|
|
- 'include/sys/*'
|
|
- 'src/common/*'
|
|
- 'src/linux/*'
|
|
- 'test/*'
|
|
- '.github/workflows/ci-linux-coverity.yml'
|
|
jobs:
|
|
linux-build-and-test:
|
|
if: github.repository == 'mheily/libkqueue'
|
|
timeout-minutes: 5
|
|
strategy:
|
|
fail-fast: false
|
|
runs-on: ubuntu-20.04
|
|
name: "ci-linux-coverity"
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Install build deps
|
|
run: |
|
|
sudo apt-get install -y \
|
|
build-essential \
|
|
devscripts \
|
|
fakeroot \
|
|
gridsite-clients
|
|
|
|
- name: Download coverity tool MD5
|
|
run: |
|
|
wget https://scan.coverity.com/download/linux64 \
|
|
--post-data "token=${TOKEN}&project=`urlencode ${GITHUB_REPOSITORY}`&md5=1" \
|
|
-O coverity_tool.tar.gz.md5
|
|
env:
|
|
TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
|
|
|
|
- name: Cache coverity tool
|
|
uses: actions/cache@v2
|
|
id: cache-coverity
|
|
with:
|
|
path: coverity_tool.tar.gz
|
|
key: coverity-tool-cache-${{ hashFiles('coverity_tool.tar.gz.md5') }}
|
|
|
|
- name: Download coverity tool
|
|
if: ${{ steps.cache-coverity.outputs.cache-hit != 'true' }}
|
|
run: |
|
|
wget https://scan.coverity.com/download/linux64 \
|
|
--post-data "token=${TOKEN}&project=`urlencode ${GITHUB_REPOSITORY}`" \
|
|
-O coverity_tool.tar.gz
|
|
env:
|
|
TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
|
|
|
|
- name: Extract coverity tool
|
|
run: |
|
|
mkdir coverity_tool
|
|
tar xzf coverity_tool.tar.gz --strip 1 -C coverity_tool
|
|
|
|
- name: Install LLVM 10
|
|
run: |
|
|
sudo apt-get install -y --no-install-recommends clang-10 llvm-10
|
|
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-10 60 && sudo update-alternatives --set clang /usr/bin/clang-10
|
|
sudo update-alternatives --install /usr/bin/llvm-symbolizer llvm-symbolizer /usr/bin/llvm-symbolizer-10 60 && sudo update-alternatives --set llvm-symbolizer /usr/bin/llvm-symbolizer-10
|
|
|
|
- name: Configure build system
|
|
run: |
|
|
cmake . -G "Unix Makefiles" \
|
|
-DCMAKE_INSTALL_PREFIX="/usr" \
|
|
-DCMAKE_INSTALL_LIBDIR="lib" \
|
|
-DCMAKE_VERBOSE_MAKEFILE:BOOL="ON" \
|
|
-DENABLE_TESTING="YES" \
|
|
-DCMAKE_BUILD_TYPE="Debug"
|
|
|
|
- name: Build libkqueue
|
|
run: |
|
|
export PATH=`pwd`/coverity_tool/bin:$PATH
|
|
export CC=clang
|
|
cov-configure --template --compiler clang --comptype clangcc
|
|
cov-build --dir cov-int make
|
|
|
|
- name: Display build result
|
|
run: |
|
|
cat /home/runner/work/libkqueue/libkqueue/cov-int/build-log.txt
|
|
|
|
- name: Submit result
|
|
run: |
|
|
tar czf cov-int.tar.gz cov-int
|
|
curl \
|
|
--form token="$TOKEN" \
|
|
--form email="a.cudbardb@freeradius.org" \
|
|
--form file=@cov-int.tar.gz \
|
|
--form version="`grep LIBKQUEUE_VERSION_STRING version.h | cut -w -f 3 | sed -e 's/"//g'`" \
|
|
--form description="${GITHUB_REPOSITORY}" \
|
|
https://scan.coverity.com/builds?project=`urlencode ${GITHUB_REPOSITORY}`
|
|
env:
|
|
TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
|