CI: Add a functional test without collecting coverage (tired of codecov failures)
authorAlexander Popov <alex.popov@linux.com>
Thu, 2 May 2024 13:02:03 +0000 (16:02 +0300)
committerAlexander Popov <alex.popov@linux.com>
Thu, 2 May 2024 13:02:03 +0000 (16:02 +0300)
.github/workflows/functional_test_no-coverage.yml [new file with mode: 0644]

diff --git a/.github/workflows/functional_test_no-coverage.yml b/.github/workflows/functional_test_no-coverage.yml
new file mode 100644 (file)
index 0000000..3d02c5a
--- /dev/null
@@ -0,0 +1,57 @@
+name: functional test no coverage
+
+on:
+  push:
+    branches: [ master ]
+  pull_request:
+    branches: [ master ]
+
+jobs:
+  functional_test_no-coverage:
+
+    runs-on: ubuntu-latest
+
+    strategy:
+      max-parallel: 1
+      fail-fast: false
+      matrix:
+        # Current ubuntu-latest (Ubuntu 22.04) provides the following versions of Python:
+        python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
+
+    steps:
+
+    - name: Set up Python ${{ matrix.python-version }}
+      uses: actions/setup-python@v5
+      with:
+        python-version: ${{ matrix.python-version }}
+
+    - name: Install package
+      run: |
+        python -m pip install --upgrade pip
+        echo "Install the package via pip..."
+        pip --verbose install git+https://github.com/a13xp0p0v/kernel-hardening-checker
+        echo "Run the installed tool..."
+        kernel-hardening-checker
+
+    - name: Check all configs with the installed tool
+      run: |
+        echo "Check all configs with the installed tool..."
+        sysctl -a > /tmp/sysctls
+        CONFIG_DIR=`find /opt/hostedtoolcache/Python/ -name config_files`
+        KCONFIGS=`find $CONFIG_DIR -type f | grep -e "\.config" -e "\.gz"`
+        COUNT=0
+        for C in $KCONFIGS
+        do
+                COUNT=$(expr $COUNT + 1)
+                echo -e "\n>>>>> checking kconfig number $COUNT <<<<<"
+                kernel-hardening-checker -c $C -l /proc/cmdline -s /tmp/sysctls
+        done
+        echo -e "\nHave checked $COUNT kconfigs"
+
+    - name: Get source code
+      uses: actions/checkout@v4
+
+    - name: Run the functional tests
+      run: |
+        pip install coverage
+        sh .github/workflows/functional_test.sh