From 6285668dcd24703a645b790805759b901e23620e Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Sun, 16 Jan 2022 04:47:51 +0100 Subject: [PATCH] .github: action for running coverity scan Signed-off-by: Joachim Wiberg --- .github/workflows/coverity.yml | 63 ++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 .github/workflows/coverity.yml diff --git a/.github/workflows/coverity.yml b/.github/workflows/coverity.yml new file mode 100644 index 00000000..4127986a --- /dev/null +++ b/.github/workflows/coverity.yml @@ -0,0 +1,63 @@ +name: Coverity Scan + +on: + push: + branches: + - 'dev' + +env: + PROJECT_NAME: finit + CONTACT_EMAIL: troglobit@gmail.com + COVERITY_NAME: troglobit-finit + COVERITY_PROJ: troglobit%2Ffinit + +jobs: + coverity: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/cache@v2 + id: coverity-toolchain-cache + with: + path: cov-analysis-linux64 + key: ${{ runner.os }}-coverity + - name: Download Coverity Scan + if: steps.coverity-toolchain-cache.outputs.cache-hit != 'true' + env: + TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }} + run: | + wget -q https://scan.coverity.com/download/cxx/linux64 \ + --post-data "token=$TOKEN&project=${COVERITY_PROJ}" \ + -O cov-analysis-linux64.tar.gz + mkdir cov-analysis-linux64 + tar xzf cov-analysis-linux64.tar.gz --strip 1 -C cov-analysis-linux64 + - name: Install dependencies + run: | + sudo apt-get -y update + sudo apt-get -y install pkg-config + wget https://github.com/troglobit/libuev/releases/download/v2.3.2/libuev-2.3.2.tar.xz + wget https://github.com/troglobit/libite/releases/download/v2.3.1/libite-2.3.1.tar.gz + tar xf libuev-2.3.2.tar.xz + tar xf libite-2.3.1.tar.gz + (cd libuev-2.3.2 && ./configure --prefix=/usr && make && sudo make install-strip) + (cd libite-2.3.1 && ./configure --prefix=/usr && make && sudo make install-strip) + sudo ldconfig + - name: Build + run: | + ./autogen.sh + ./configure --prefix= --enable-x11-common-plugin --with-watchdog --with-keventd + export PATH=`pwd`/cov-analysis-linux64/bin:$PATH + cov-build --dir cov-int make + - name: Submit result to Coverity Scan + env: + TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }} + run: | + tar czvf ${PROJECT_NAME}.tgz cov-int + curl \ + --form project=${COVERITY_NAME} \ + --form token=$TOKEN \ + --form email=${CONTACT_EMAIL} \ + --form file=@${PROJECT_NAME}.tgz \ + --form version=trunk \ + --form description="${PROJECT_NAME} $(git rev-parse HEAD)" \ + https://scan.coverity.com/builds?project=${COVERITY_PROJ}