diff --git a/.github/workflows/ci-push.yml b/.github/workflows/ci-push.yml index 2a911d1fb5..3b42e5e114 100644 --- a/.github/workflows/ci-push.yml +++ b/.github/workflows/ci-push.yml @@ -1,6 +1,6 @@ name: CI -on: [push] +on: [push, pull_request] jobs: @@ -499,3 +499,123 @@ jobs: name: scanbuild-cgc-${{ github.sha }} path: racketcgc-report-${{ github.sha }}.tar.bz2 + scanbuild-racket3m: + + runs-on: ubuntu-latest + container: pmatos/scan-build:latest + needs: build-racketcgc + + env: + RUNNER_TEMP: "/__w/_temp" + + steps: + - name: Workaround temp issues + run: | + mkdir -p ${{ runner.temp }} + cd ${{ runner.temp }}/.. + rmdir ${{ runner.temp }} + ln -s ${RUNNER_TEMP} ${{ runner.temp }} + - uses: actions/checkout@v1 + with: + fetch-depth: 100 + - name: Install dependencies + run: | + apt-get update + apt-get install -y libffi-dev unzip python libxml2-dev libfindbin-libs-perl make gcc g++ + - uses: actions/download-artifact@v1 + with: + name: racketcgc-ubuntu-18.04-cify-x64_git${{ github.sha }} + path: ${{ runner.temp }} + - name: Untar + working-directory: ${{ runner.temp }} + run: tar -xvjf racketcgc-ubuntu-18.04-cify-x64_git${{ github.sha }}.tar.bz2 + - name: Configure + working-directory: ./racket/src + run: > + ./configure + CFLAGS="-O0 -g" + --disable-strip + --prefix=${RUNNER_TEMP}/racket3m + --enable-racket=${RUNNER_TEMP}/racketcgc/bin/racket + --enable-werror + --enable-cify + --enable-jit + --enable-foreign + --enable-places + --enable-futures + --enable-float + --enable-pthread + --disable-docs + - name: Scan Build + working-directory: ./racket/src + run: | + export cpus=$(grep -c ^processor /proc/cpuinfo) + scan-build -o ../../racket3m-report -analyzer-config 'crosscheck-with-z3=true' make -j$((cpus + 1)) + - name: Tarballing + run: tar -cvjf racket3m-report-${{ github.sha }}.tar.bz2 racket3m-report + - uses: actions/upload-artifact@v1 + if: always() + with: + name: scanbuild-3m-${{ github.sha }} + path: racket3m-report-${{ github.sha }}.tar.bz2 + + scanbuild-racketcs: + + runs-on: ubuntu-18.04 + container: pmatos/scan-build:latest + needs: build-racketcgc + + env: + RUNNER_TEMP: "/__w/_temp" + + steps: + - name: Workaround temp issues + run: | + mkdir -p ${{ runner.temp }} + cd ${{ runner.temp }}/.. + rmdir ${{ runner.temp }} + ln -s ${RUNNER_TEMP} ${{ runner.temp }} + - uses: actions/checkout@v1 + with: + fetch-depth: 100 + - name: Install pkg dependencies + run: | + apt update + apt install -y libffi-dev unzip python libxml2-dev libfindbin-libs-perl make gcc g++ git uuid-dev + - uses: actions/download-artifact@v1 + with: + name: racketcgc-ubuntu-18.04-cify-x64_git${{ github.sha }} + path: ${{ runner.temp }} + - name: Untar + working-directory: ${{ runner.temp }} + run: tar -xvjf racketcgc-ubuntu-18.04-cify-x64_git${{ github.sha}}.tar.bz2 + - name: Checking out ChezScheme + working-directory: ./racket/src + run: git clone --depth=1 --recurse-submodules -j3 https://github.com/racket/ChezScheme + - name: Configuring Racket CS + working-directory: ./racket/src + env: + CC: ${{ matrix.cc }} + run: > + ./configure + CFLAGS="-O0 -g" + --prefix=${RUNNER_TEMP}/racketcs + $RACKET_EXTRA_CONFIGURE_ARGS + --enable-racket=${RUNNER_TEMP}/racketcgc/bin/racket + --enable-compress + --disable-docs + --enable-pthread + --enable-csdefault + --enable-csonly + - name: Building + working-directory: ./racket/src + run: | + export cpus=$(grep -c ^processor /proc/cpuinfo) + scan-build -o ../../racketcs-report -analyzer-config 'crosscheck-with-z3=true' make -j $((cpus+1)) + - name: Tarballing + run: tar -cvjf racketcs-report-${{ github.sha }}.tar.bz2 racketcs-report + - uses: actions/upload-artifact@v1 + if: always() + with: + name: scanbuild-cs-${{ github.sha }} + path: racketcs-report-${{ github.sha }}.tar.bz2