name: Coverity Scan

# We only want to test official release code, not every pull request.
on:
  workflow_dispatch:
  schedule:
    - cron: '18 9 * * WED,SUN' # Bi-weekly at 9:18 UTC

jobs:
  coverity:
    runs-on: ubuntu-22.04
    steps:
    - name: Install build dependencies
      run: |
        sudo apt-get install -y wget git gawk \
          libbz2-dev build-essential \
          zlib1g-dev libncurses5-dev iasl \
          libbz2-dev e2fslibs-dev uuid-dev ocaml \
          ocaml-findlib libyajl-dev \
          autoconf libtool liblzma-dev \
          python3-dev golang libsystemd-dev

    - uses: actions/checkout@v2
      with:
        ref: staging

    - name: Configure Xen
      run: |
        ./configure --with-system-qemu=/bin/true \
                    --with-system-seabios=/bin/true \
                    --with-system-ovmf=/bin/true

    - name: Pre build stuff
      run: |
        make -j`nproc` mini-os-dir

    - uses: vapier/coverity-scan-action@v1
      with:
        command: make -j`nproc` build-xen build-tools && make -j`nproc` -C extras/mini-os/
        project: XenProject
        email: ${{ secrets.COVERITY_SCAN_EMAIL }}
        token: ${{ secrets.COVERITY_SCAN_TOKEN }}
