diff --git a/.github/workflows/coverity.yml b/.github/workflows/coverity.yml new file mode 100644 index 0000000..e8018ad --- /dev/null +++ b/.github/workflows/coverity.yml @@ -0,0 +1,48 @@ +name: Coverity Scan + +on: + push: + branches: + - coverity_scan + + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-20.04 + + env: + COVERITY_SCAN_TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }} + COVERITY_SCAN_PROG_URL: https://scan.coverity.com/download/cxx/linux64 + COVERITY_SCAN_PROJECT_NAME: sipwise/libtcap + COVERITY_SCAN_NOTIFICATION_EMAIL: development@sipwise.com + steps: + - name: Checkout source + uses: actions/checkout@v2 + + - name: Get build dependencies + run: | + sudo apt-get install -qq -y --no-install-recommends git ca-certificates curl + sudo apt-get build-dep -qq -y . + + - name: Get coverity scan + run: | + curl -o cov-analysis.tgz \ + $COVERITY_SCAN_PROG_URL \ + --form project=$COVERITY_SCAN_PROJECT_NAME \ + --form token=$COVERITY_SCAN_TOKEN + tar xfz cov-analysis.tgz + + - name: Analyze + run: cov-analysis-*/bin/cov-build --dir cov-int make -j4 + + - name: Submit result + run: | + tar cfz cov-int.tar.gz cov-int + curl \ + https://scan.coverity.com/builds?project=$COVERITY_SCAN_PROJECT_NAME \ + --form token=$COVERITY_SCAN_TOKEN \ + --form email=$COVERITY_SCAN_NOTIFICATION_EMAIL \ + --form file=@cov-int.tar.gz \ + --form version="`git describe --tags`" \ + --form description="`git describe --tags` / $CI_COMMIT_TITLE / $CI_COMMIT_REF_NAME:$CI_PIPELINE_ID" diff --git a/Makefile b/Makefile index 3cdcd7a..d74e8bc 100644 --- a/Makefile +++ b/Makefile @@ -22,7 +22,6 @@ clean: $(MAKE) -C asn1-compiled lib-clean $(MAKE) -C src clean $(MAKE) -C tests clean - rm -rf project.tgz cov-int install: all mkdir -p $(DESTDIR)/$(HDR) @@ -32,14 +31,4 @@ install: all cp src/$(LIBSOVER) $(DESTDIR)/$(LIBDIR)/$(LIBSOVER) ln -s $(LIBSOVER) $(DESTDIR)/$(LIBDIR)/$(LIBSO) -coverity: - cov-build --dir cov-int $(MAKE) - tar -czf project.tgz cov-int - curl --form token=$(COVERITY_LIBTCAP_TOKEN) \ - --form email=$(DEBEMAIL) \ - --form file=@project.tgz \ - --form version="$(LIBTCAP_VERSION)" \ - --form description="automatic upload" \ - https://scan.coverity.com/builds?project=$(COVERITY_LIBTCAP_PROJECT) - -.PHONY: all regenerate-asn1 clean install coverity +.PHONY: all regenerate-asn1 clean install