From: Roger Pau Monne Date: Fri, 25 Feb 2022 12:32:33 +0000 (+0100) Subject: codeql: add support for analyzing C, Python and Go X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=refs%2Fheads%2Fcodeql-x86;p=people%2Froyger%2Fxen.git codeql: add support for analyzing C, Python and Go Introduce CodeQL support for Xen and analyze the C, Python and Go files. Note than when analyzing Python or Go we avoid building the hypervisor and only build the tools. Requested-by: Andrew Cooper Signed-off-by: Roger Pau Monné --- Changes since v1: - Rename to note it's x86 specific right now. - Merge the ignored path patch. --- diff --git a/.github/codeql/codeql-config.yml b/.github/codeql/codeql-config.yml new file mode 100644 index 0000000000..721640c2a5 --- /dev/null +++ b/.github/codeql/codeql-config.yml @@ -0,0 +1,3 @@ +paths-ignore: + - xen/tools/kconfig + - tools/firmware/xen-dir/xen-root/xen/tools/kconfig diff --git a/.github/workflows/codeql-x86.yml b/.github/workflows/codeql-x86.yml new file mode 100644 index 0000000000..a3ec6236c4 --- /dev/null +++ b/.github/workflows/codeql-x86.yml @@ -0,0 +1,60 @@ +name: CodeQL x86 + +on: + workflow_dispatch: + push: + branches: [staging] + schedule: + - cron: '18 10 * * WED,SUN' # Bi-weekly at 10:18 UTC + +jobs: + analyse: + + strategy: + matrix: + language: [ 'cpp', 'python', 'go' ] + + runs-on: ubuntu-latest + + steps: + - name: Install build dependencies + run: | + sudo apt-get install -y wget git \ + libbz2-dev build-essential \ + zlib1g-dev libncurses5-dev iasl \ + libbz2-dev e2fslibs-dev uuid-dev libyajl-dev \ + autoconf libtool liblzma-dev \ + python3-dev golang python-dev 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: github/codeql-action/init@v1 + with: + config-file: ./.github/codeql/codeql-config.yml + languages: ${{matrix.language}} + queries: security-and-quality + + - if: matrix.language == 'cpp' + name: Full Build + run: | + make -j`nproc` build-xen build-tools + make -j`nproc` -C extras/mini-os/ + + - if: matrix.language == 'python' || matrix.language == 'go' + name: Tools Build + run: | + make -j`nproc` build-tools + + - uses: github/codeql-action/analyze@v1