summaryrefslogtreecommitdiffstats
path: root/.github/workflows/pylint.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/pylint.yml')
-rw-r--r--.github/workflows/pylint.yml104
1 files changed, 104 insertions, 0 deletions
diff --git a/.github/workflows/pylint.yml b/.github/workflows/pylint.yml
new file mode 100644
index 0000000..abd3c1b
--- /dev/null
+++ b/.github/workflows/pylint.yml
@@ -0,0 +1,104 @@
+name: Linters
+
+on:
+ push:
+ branches: [ main ]
+ pull_request:
+ branches: [ main ]
+
+ workflow_dispatch:
+
+jobs:
+
+ docker-lint:
+ if: ${{ !github.event.act }} # skip during local actions testing
+ runs-on: ubuntu-20.04
+ steps:
+ - uses: actions/checkout@v3
+ - uses: hadolint/hadolint-action@v3.1.0
+ with:
+ recursive: true
+ ignore: DL3041
+
+ python-lint:
+ runs-on: ubuntu-20.04
+
+ strategy:
+ fail-fast: false
+ matrix:
+ python-version: ["3.6", "3.7", "3.8", "3.9", "3.10"]
+
+ steps:
+ - name: "CHECKOUT: nvme-stas"
+ uses: actions/checkout@v3
+
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v4
+ with:
+ python-version: ${{ matrix.python-version }}
+
+# - name: "UPGRADE: existing packages"
+# run: |
+# sudo apt-get update --yes --quiet || true
+# sudo apt-get upgrade --yes --quiet || true
+
+ - name: "INSTALL: additional packages"
+ run: |
+ sudo apt-get install --yes --quiet python3-pip || true
+ sudo apt-get install --yes --quiet cmake || true
+ sudo apt-get install --yes --quiet libgirepository1.0-dev || true
+ sudo apt-get install --yes --quiet libsystemd-dev || true
+ sudo apt-get install --yes --quiet python3-systemd || true
+ sudo python3 -m pip install --upgrade pip
+ sudo python3 -m pip install --upgrade wheel
+ sudo python3 -m pip install --upgrade meson
+ sudo python3 -m pip install --upgrade ninja
+ python3 -m pip install --upgrade dasbus
+ python3 -m pip install --upgrade pylint
+ python3 -m pip install --upgrade pyflakes
+ python3 -m pip install --upgrade PyGObject
+ python3 -m pip install --upgrade lxml
+ python3 -m pip install --upgrade pyudev
+
+ - name: "BUILD: libnvme"
+ run: |
+ sudo apt-get install --yes --quiet swig libjson-c-dev || true
+ meson subprojects download
+ meson setup builddir subprojects/libnvme -Dlibdbus=disabled -Dopenssl=disabled -Dbuildtype=release -Dprefix=/usr -Dpython=true
+ ninja -C builddir
+ sudo meson install -C builddir
+
+ - name: Set PYTHONPATH
+ run: |
+ echo "PYTHONPATH=builddir:builddir/subprojects/libnvme:/usr/lib/python3/dist-packages/" >> $GITHUB_ENV
+
+ - name: Show test environment
+ run: |
+ echo -e "Build Directory:\n$(ls -laF builddir)"
+ python3 -VV
+ python3 -m site
+ python3 -m pylint --version
+ echo "pyflakes $(python3 -m pyflakes --version)"
+
+ - name: Pylint
+ run: |
+ python3 -m pylint --rcfile=test/pylint.rc *.py staslib
+
+ - name: Pyflakes
+ if: always()
+ run: |
+ python3 -m pyflakes *.py staslib
+
+ python-black:
+ if: ${{ !github.event.act }} # skip during local actions testing
+ name: python-black formatter
+ runs-on: ubuntu-latest
+ steps:
+ - name: "CHECKOUT: nvme-stas"
+ uses: actions/checkout@v3
+
+ - name: "BLACK"
+ uses: psf/black@stable
+ with:
+ options: "--check --diff --color --line-length 120 --skip-string-normalization --extend-exclude (subprojects|debian|.build)"
+ src: "."