From: Vincent Bernat Date: Tue, 27 Jul 2021 18:44:30 +0000 (+0200) Subject: github: better caching for coverity toolchain X-Git-Tag: 1.0.12~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f6b6b17b16f640ca41075822fb8b7151a46ca745;p=thirdparty%2Flldpd.git github: better caching for coverity toolchain Thanks to @troglobit. See https://github.com/lldpd/lldpd/discussions/460. --- diff --git a/.github/workflows/coverity.yml b/.github/workflows/coverity.yml index f3c01b2b..2e49c892 100644 --- a/.github/workflows/coverity.yml +++ b/.github/workflows/coverity.yml @@ -4,6 +4,10 @@ on: schedule: - cron: '0 9 * * 5' +env: + COVERITY_PROJ: vincentbernat-lldpd + CONTACT_EMAIL: vincent@bernat.ch + jobs: build: runs-on: ubuntu-latest @@ -11,39 +15,59 @@ jobs: - uses: actions/checkout@v2 with: submodules: true + - 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=${COVERITY_PROJ/-/%2F}&md5=1" \ + -O coverity-latest.tar.gz.md5 + export MD5=$(cat coverity-latest.tar.gz.md5) + echo "Got MD5 $MD5" + echo ::set-output name=md5::${MD5} - uses: actions/cache@v2 - id: coverity-toolchain-cache + id: cache with: - path: cov-analysis-linux64 - key: ${{ runner.os }}-coverity - - name: Install stuff - run: ./tests/ci/install.sh + 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 - if: steps.coverity-toolchain-cache.outputs.cache-hit != 'true' run: | - wget -q https://scan.coverity.com/download/cxx/linux64 \ - --post-data "token=$TOKEN&project=vincentbernat%2Flldpd" \ - -O cov-analysis-linux64.tar.gz - mkdir cov-analysis-linux64 - tar xzf cov-analysis-linux64.tar.gz --strip 1 -C cov-analysis-linux64 + if [ ! -f coverity-latest.tar.gz ]; then + wget -q https://scan.coverity.com/download/cxx/linux64 \ + --post-data "token=$TOKEN&project=${COVERITY_PROJ/-/%2F}" \ + -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 + ls coverity/ env: TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }} + - name: Install stuff + run: ./tests/ci/install.sh - name: Build run: | ./autogen.sh ./configure --with-snmp - export PATH=`pwd`/cov-analysis-linux64/bin:$PATH + export PATH=`pwd`/coverity/bin:$PATH cov-build --dir cov-int make - name: Submit the result to Coverity Scan run: | - tar czvf lldpd.tgz cov-int + tar czvf ${COVERITY_PROJ#*-}.tgz cov-int curl \ - --form project=vincentbernat-lldpd \ + --form project=${COVERITY_PROJ} \ --form token=$TOKEN \ - --form email=vincent@bernat.ch \ - --form file=@lldpd.tgz \ + --form email=${CONTACT_EMAIL} \ + --form file=@${COVERITY_PROJ#*-}.tgz \ --form version=trunk \ - --form description="lldpd $(git rev-parse HEAD)" \ - https://scan.coverity.com/builds?project=vincentbernat%2Flldpd + --form description="${COVERITY_PROJ#*-} $(git rev-parse HEAD)" \ + https://scan.coverity.com/builds?project=${COVERITY_PROJ/-/%2F} env: TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}