diff --git a/.github/tools/install_ubuntu_packages.sh b/.github/tools/install_ubuntu_packages.sh new file mode 100755 index 00000000..0cfb71ef --- /dev/null +++ b/.github/tools/install_ubuntu_packages.sh @@ -0,0 +1,12 @@ +#!/usr/bin/bash + +VERSION_CODENAME=$(grep -oP '(?<=^VERSION_CODENAME=).+' /etc/os-release | tr -d '"') +echo "Detected VERSION_CODENAME: $VERSION_CODENAME" + +# Add ubuntu repository +sudo add-apt-repository -y "deb [arch=amd64] http://archive.ubuntu.com/ubuntu $VERSION_CODENAME \ + main universe" +# Install gcc +sudo apt-get -y update && sudo apt-get -y install gcc-$1 g++-$1 +# Install dependencies +sudo apt-get -y install make libsgutils2-dev libudev-dev \ No newline at end of file diff --git a/.github/workflows/review.yml b/.github/workflows/review.yml new file mode 100644 index 00000000..8e355bdd --- /dev/null +++ b/.github/workflows/review.yml @@ -0,0 +1,37 @@ +name: review +on: [pull_request] +env: + cflags: -Werror +jobs: + make: + runs-on: ubuntu-latest + name: Compilation test with gcc + strategy: + matrix: + gcc-version: [7, 8, 9, 10, 11, 12, 13] + steps: + - uses: actions/checkout@v3 + - name: 'Add ubuntu repository and install dependencies' + run: .github/tools/install_ubuntu_packages.sh ${{ matrix.gcc-version }} + - name: 'Make with DEBUG flag' + run: CC=gcc-${{ matrix.gcc-version }} CXX=g++-${{ matrix.gcc-version }} && V=1 make -j$(nproc) -B CXFLAGS=-DEBUG && make clean + - name: 'Make with DEBIAN flag' + run: CC=gcc-${{ matrix.gcc-version }} CXX=g++-${{ matrix.gcc-version }} && V=1 make -j$(nproc) -B CXGALGS=-DEBIAN && make clean + - name: 'Make with USE_PTHREADS flag' + run: CC=gcc-${{ matrix.gcc-version }} CXX=g++-${{ matrix.gcc-version }} && V=1 make -j$(nproc) -B CXFLAGS=-USE_PTHREADS && make clean + - name: 'Make with DNO_LIBUDEV flag' + run: CC=gcc-${{ matrix.gcc-version }} CXX=g++-${{ matrix.gcc-version }} && V=1 make -j$(nproc) -B CXFLAGS=-DNO_LIBUDEV && make clean + - name: 'Make' + run: CC=gcc-${{ matrix.gcc-version }} CXX=g++-${{ matrix.gcc-version }} && V=1 make -j$(nproc) + checkpatch: + runs-on: ubuntu-latest + name: checkpatch review + steps: + - name: 'Calculate PR commits + 1' + run: echo "PR_FETCH_DEPTH=$(( ${{ github.event.pull_request.commits }} + 1 ))" >> $GITHUB_ENV + - uses: actions/checkout@v3 + with: + ref: ${{ github.event.pull_request.head.sha }} + fetch-depth: ${{ env.PR_FETCH_DEPTH }} + - name: Run checkpatch review + uses: webispy/checkpatch-action@v9