From d3d4b21db909ab77aa8b71b70de438d0010f364b Mon Sep 17 00:00:00 2001 From: Kinga Stefaniuk Date: Thu, 11 Apr 2024 10:37:39 +0200 Subject: [PATCH] CI: create review.yml file Introduce review.yml used by GitHub actions. Add make probe, checkpatch and hardening-check on every pull request. Add dependabot.yml file which check for updates of actions used in this repository. This option enables to automatically fill new PR with action updated to the latest version. Signed-off-by: Kinga Stefaniuk --- .checkpatch.conf | 16 +++++++++ .github/dependabot.yml | 6 ++++ .github/tools/install_ubuntu_packages.sh | 12 +++++++ .github/workflows/review.yml | 41 ++++++++++++++++++++++++ 4 files changed, 75 insertions(+) create mode 100644 .checkpatch.conf create mode 100644 .github/dependabot.yml create mode 100755 .github/tools/install_ubuntu_packages.sh create mode 100644 .github/workflows/review.yml diff --git a/.checkpatch.conf b/.checkpatch.conf new file mode 100644 index 00000000..26b8114f --- /dev/null +++ b/.checkpatch.conf @@ -0,0 +1,16 @@ +--no-tree +--show-types +--exclude .github +--exclude clustermd_tests +--exclude documentation +--exclude misc +--exclude systemd +--exclude tests +--exclude *.md +--exclude *.4 +--exclude *.in +--exclude *.8 +--exclude test +--exclude udev-* +--ignore FILE_PATH_CHANGES +--ignore EMAIL_SUBJECT diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..12301490 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,6 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "daily" diff --git a/.github/tools/install_ubuntu_packages.sh b/.github/tools/install_ubuntu_packages.sh new file mode 100755 index 00000000..1a31ca47 --- /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 +# Install dependencies +sudo apt-get -y install make gcc libudev-dev devscripts diff --git a/.github/workflows/review.yml b/.github/workflows/review.yml new file mode 100644 index 00000000..57f5d238 --- /dev/null +++ b/.github/workflows/review.yml @@ -0,0 +1,41 @@ +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@v4 + - 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 }} && V=1 make -j$(nproc) -B CXFLAGS=-DEBUG && make clean + - name: 'Make with DEBIAN flag' + run: CC=gcc-${{ 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 }} && V=1 make -j$(nproc) -B CXFLAGS=-USE_PTHREADS && make clean + - name: 'Make with DNO_LIBUDEV flag' + run: CC=gcc-${{ matrix.gcc-version }} && V=1 make -j$(nproc) -B CXFLAGS=-DNO_LIBUDEV && make clean + - name: 'Make' + run: CC=gcc-${{ matrix.gcc-version }} && V=1 make -j$(nproc) + - name: hardening-check mdadm + run: hardening-check mdadm + - name: hardening-check mdmon + run: hardening-check mdmon + 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@v4 + with: + ref: ${{ github.event.pull_request.head.sha }} + fetch-depth: ${{ env.PR_FETCH_DEPTH }} + - name: Run checkpatch review + uses: webispy/checkpatch-action@v9 -- 2.47.2