mirror of
https://github.com/git/git.git
synced 2024-09-28 08:49:45 +02:00
coverity: cache the Coverity Build Tool
It would add a 1GB+ download for every run, better cache it. This is inspired by the GitHub Action `vapier/coverity-scan-action`, however, it uses the finer-grained `restore`/`save` method to be able to cache the Coverity Build Tool even if an unrelated step in the GitHub workflow fails later on. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
a56b6230d0
commit
002e5e9ad1
28
.github/workflows/coverity.yml
vendored
28
.github/workflows/coverity.yml
vendored
@ -29,7 +29,28 @@ jobs:
|
||||
env:
|
||||
runs_on_pool: ubuntu-latest
|
||||
|
||||
# The Coverity site says the tool is usually updated twice yearly, so the
|
||||
# MD5 of download can be used to determine whether there's been an update.
|
||||
- name: get the Coverity Build Tool hash
|
||||
id: lookup
|
||||
run: |
|
||||
MD5=$(curl https://scan.coverity.com/download/$COVERITY_LANGUAGE/$COVERITY_PLATFORM \
|
||||
--fail \
|
||||
--form token='${{ secrets.COVERITY_SCAN_TOKEN }}' \
|
||||
--form project="$COVERITY_PROJECT" \
|
||||
--form md5=1) &&
|
||||
echo "hash=$MD5" >>$GITHUB_OUTPUT
|
||||
|
||||
# Try to cache the tool to avoid downloading 1GB+ on every run.
|
||||
# A cache miss will add ~30s to create, but a cache hit will save minutes.
|
||||
- name: restore the Coverity Build Tool
|
||||
id: cache
|
||||
uses: actions/cache/restore@v3
|
||||
with:
|
||||
path: ${{ runner.temp }}/cov-analysis
|
||||
key: cov-build-${{ env.COVERITY_LANGUAGE }}-${{ env.COVERITY_PLATFORM }}-${{ steps.lookup.outputs.hash }}
|
||||
- name: download the Coverity Build Tool (${{ env.COVERITY_LANGUAGE }} / ${{ env.COVERITY_PLATFORM}})
|
||||
if: steps.cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
curl https://scan.coverity.com/download/$COVERITY_LANGUAGE/$COVERITY_PLATFORM \
|
||||
--fail --no-progress-meter \
|
||||
@ -37,9 +58,16 @@ jobs:
|
||||
--form token='${{ secrets.COVERITY_SCAN_TOKEN }}' \
|
||||
--form project="$COVERITY_PROJECT"
|
||||
- name: extract the Coverity Build Tool
|
||||
if: steps.cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
mkdir $RUNNER_TEMP/cov-analysis &&
|
||||
tar -xzf $RUNNER_TEMP/cov-analysis.tgz --strip 1 -C $RUNNER_TEMP/cov-analysis
|
||||
- name: cache the Coverity Build Tool
|
||||
if: steps.cache.outputs.cache-hit != 'true'
|
||||
uses: actions/cache/save@v3
|
||||
with:
|
||||
path: ${{ runner.temp }}/cov-analysis
|
||||
key: cov-build-${{ env.COVERITY_LANGUAGE }}-${{ env.COVERITY_PLATFORM }}-${{ steps.lookup.outputs.hash }}
|
||||
- name: build with cov-build
|
||||
run: |
|
||||
export PATH="$RUNNER_TEMP/cov-analysis/bin:$PATH" &&
|
||||
|
Loading…
Reference in New Issue
Block a user