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-latest steps: - uses: actions/checkout@v4 - uses: hadolint/hadolint-action@v3.1.0 with: recursive: true ignore: DL3041 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@v4 - name: "BLACK" uses: psf/black@25.1.0 with: options: "--check --diff --color --line-length 120 --skip-string-normalization --extend-exclude (subprojects|debian|.build)" src: "." python-lint-Jammy: runs-on: ubuntu-22.04 strategy: fail-fast: false matrix: python-version: ["3.9", "3.10"] steps: - name: "CHECKOUT: nvme-stas" uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: "INSTALL: apt-get packages" run: | sudo apt update sudo apt-get install --yes --quiet meson ninja-build cmake libgirepository1.0-dev libsystemd-dev swig libjson-c-dev sudo apt-get install --yes --quiet python3-wheel python3-systemd python3-pyudev python3-dasbus python3-gi python3-lxml pyflakes3 python3-tomli - name: "INSTALL: pip packages" run: | pip install pylint # pip install PyGObject - name: "BUILD: [libnvme, nvme-stas]" uses: BSFishy/meson-build@v1.0.3 with: action: build directory: .build setup-options: --buildtype=release --sysconfdir=/etc --prefix=/usr -Dlibnvme:buildtype=release -Dlibnvme:sysconfdir=/etc -Dlibnvme:prefix=/usr -Dlibnvme:python=enabled -Dlibnvme:libdbus=disabled -Dlibnvme:openssl=disabled -Dlibnvme:json-c=disabled -Dlibnvme:keyutils=disabled - name: Set PYTHONPATH run: | echo "PYTHONPATH=.build:.build/subprojects/libnvme:/usr/lib/python3/dist-packages" >> $GITHUB_ENV - name: Show test environment run: | echo -e "Build Directory:\n$(ls -laF .build)" python3 -VV python3 -m site pylint --version echo "pyflakes3 $(pyflakes3 --version)" #- name: Pylint # run: | # pylint --rcfile=test/pylint.rc .build/stacctl .build/stacd .build/stafctl .build/stafd .build/stasadm .build/staslib - name: Pyflakes if: always() run: | pyflakes3 .build/stacctl .build/stacd .build/stafctl .build/stafd .build/stasadm .build/staslib python-lint-Noble: runs-on: ubuntu-24.04 strategy: fail-fast: false matrix: python-version: ["3.11", "3.12", "3.13"] steps: - name: "CHECKOUT: nvme-stas" uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5.3.0 with: python-version: ${{ matrix.python-version }} - name: "INSTALL: apt-get packages" run: | sudo apt update sudo apt-get install --yes --quiet meson ninja-build cmake libgirepository1.0-dev libsystemd-dev swig libjson-c-dev sudo apt-get install --yes --quiet python3-wheel python3-systemd python3-pyudev python3-dasbus python3-gi python3-lxml pylint pyflakes3 python3-tomli #- name: "INSTALL: pip packages" # run: | # pip install pylint # pip install PyGObject - name: "BUILD: [libnvme, nvme-stas]" uses: BSFishy/meson-build@v1.0.3 with: action: build directory: .build setup-options: --buildtype=release --sysconfdir=/etc --prefix=/usr -Dlibnvme:buildtype=release -Dlibnvme:sysconfdir=/etc -Dlibnvme:prefix=/usr -Dlibnvme:python=enabled -Dlibnvme:libdbus=disabled -Dlibnvme:openssl=disabled -Dlibnvme:json-c=disabled -Dlibnvme:keyutils=disabled - name: Set PYTHONPATH run: | echo "PYTHONPATH=.build:.build/subprojects/libnvme:/usr/lib/python3/dist-packages" >> $GITHUB_ENV - name: Show test environment run: | echo -e "Build Directory:\n$(ls -laF .build)" python3 -VV python3 -m site pylint --version echo "pyflakes3 $(pyflakes3 --version)" - name: Pylint run: | pylint --jobs=0 --rcfile=test/pylint.rc .build/stacctl .build/stacd .build/stafctl .build/stafd .build/stasadm .build/staslib - name: Pyflakes if: always() run: | pyflakes3 .build/stacctl .build/stacd .build/stafctl .build/stafd .build/stasadm .build/staslib