diff --git a/.github/workflows/coverity.yml b/.github/workflows/coverity.yml new file mode 100644 index 0000000..d086a77 --- /dev/null +++ b/.github/workflows/coverity.yml @@ -0,0 +1,59 @@ +name: Coverity Scan + +on: + push: + branches: + - 'dev' + +env: + PROJECT_NAME: sysklogd + CONTACT_EMAIL: troglobit@gmail.com + COVERITY_NAME: troglobit-sysklogd + COVERITY_PROJ: troglobit%2Fsysklogd + +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: Configure + run: | + ./autogen.sh + ./configure --prefix= + - name: Build + run: | + export PATH=`pwd`/cov-analysis-linux64/bin:$PATH + cov-build --dir cov-int make + - name: Submit results to Coverity + 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} + - name: Upload build.log + uses: actions/upload-artifact@v2 + with: + name: coverity-build.log + path: cov-int/build-log.txt