From c867c8bd153163fdadf5b68f68bd4052fa1943ad Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Thu, 16 Nov 2023 10:06:01 +0100 Subject: [PATCH] .github: initial workflow for Coverity Scan [skip ci] Signed-off-by: Joachim Wiberg --- .github/workflows/coverity.yml | 75 ++++++++++++++++++++++++++++++++++ 1 file changed, 75 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..100889f4 --- /dev/null +++ b/.github/workflows/coverity.yml @@ -0,0 +1,75 @@ +name: Coverity Scan + +on: + workflow_dispatch: + +env: + PROJECT_NAME: Infix + CONTACT_EMAIL: troglobit@gmail.com + +jobs: + coverity: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Fetch latest Coverity Scan MD5 + id: var + env: + TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }} + run: | + wget -q https://scan.coverity.com/download/cxx/linux64 \ + --post-data "token=$TOKEN&project=${PROJECT_NAME}&md5=1" \ + -O coverity-latest.tar.gz.md5 + echo "md5=$(cat coverity-latest.tar.gz.md5)" | tee -a $GITHUB_OUTPUT + - uses: actions/cache@v3 + id: cache + with: + path: coverity-latest.tar.gz + key: ${{ runner.os }}-coverity-${{ steps.var.outputs.md5 }} + restore-keys: | + ${{ runner.os }}-coverity-${{ steps.var.outputs.md5 }} + ${{ runner.os }}-coverity- + ${{ runner.os }}-coverity + - name: Download Coverity Scan + env: + TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }} + run: | + if [ ! -f coverity-latest.tar.gz ]; then + wget -q https://scan.coverity.com/download/cxx/linux64 \ + --post-data "token=$TOKEN&project=${PROJECT_NAME}" \ + -O coverity-latest.tar.gz + else + echo "Latest Coverity Scan available from cache :-)" + md5sum coverity-latest.tar.gz + fi + mkdir coverity + tar xzf coverity-latest.tar.gz --strip 1 -C coverity + - name: Install dependencies + run: | + sudo apt-get -y update + sudo apt-get -y install pkg-config libsystemd-dev + - name: Configure + run: | + ./autogen.sh + ./configure --prefix= + - name: Build + run: | + export PATH=`pwd`/coverity/bin:$PATH + cov-build --dir cov-int make + - name: Submit results to Coverity Scan + env: + TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }} + run: | + tar czvf ${PROJECT_NAME}.tgz cov-int + curl \ + --form token=$TOKEN \ + --form email=${CONTACT_EMAIL} \ + --form file=@${PROJECT_NAME}.tgz \ + --form version=$(git rev-parse HEAD) \ + --form description="${PROJECT_NAME} $(git rev-parse HEAD)" \ + https://scan.coverity.com/builds?project=${PROJECT_NAME} + - name: Upload build.log + uses: actions/upload-artifact@v3 + with: + name: coverity-build.log + path: cov-int/build-log.txt