Skip to content

Coverity Scan

Coverity Scan #436

Workflow file for this run

name: Coverity Scan
on:
schedule:
- cron: '0 18 * * 2,4' # Bi-weekly at 18:00 UTC on Tuesday and Thursday
# Automatically cancel any previous workflow on new push.
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
cancel-in-progress: true
jobs:
latest:
runs-on: ubuntu-22.04
steps:
- name: Determine current repository
id: "determine-repo"
run: echo "repo=${GITHUB_REPOSITORY}" >> $GITHUB_OUTPUT
- uses: actions/checkout@v4
- name: Download Coverity Build Tool
run: |
wget -q https://scan.coverity.com/download/cxx/linux64 --post-data "token=$TOKEN&project=rizinorg%2Frizin" -O cov-analysis-linux64.tar.gz
mkdir cov-analysis-linux64
tar xzf cov-analysis-linux64.tar.gz --strip 1 -C cov-analysis-linux64
env:
TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
if: steps.determine-repo.outputs.repo == 'rizinorg/rizin'
- name: Fixed world writable dirs
run: |
chmod go-w $HOME
sudo chmod -R go-w /usr/share
if: steps.determine-repo.outputs.repo == 'rizinorg/rizin'
- name: Installing build dependencies
run: |
sudo apt-get --assume-yes install python3-wheel python3-setuptools
pip3 install --user meson ninja PyYAML
if: steps.determine-repo.outputs.repo == 'rizinorg/rizin'
- name: Meson
run: meson setup build
if: steps.determine-repo.outputs.repo == 'rizinorg/rizin'
- name: Build with cov-build
run: |
export PATH=`pwd`/cov-analysis-linux64/bin:$PATH
cov-build --dir cov-int ninja -C build
if: steps.determine-repo.outputs.repo == 'rizinorg/rizin'
# TODO: Make it GitHub Action instead
- name: Submit the result to Coverity Scan
run: |
tar czvf rizin.tgz cov-int
curl \
--form token=$TOKEN \
--form email=noreply@rizin.re \
--form file=@rizin.tgz \
--form version=trunk \
--form description="rizin" \
https://scan.coverity.com/builds?project=rizinorg%2Frizin
env:
TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
if: steps.determine-repo.outputs.repo == 'rizinorg/rizin'