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-lint: runs-on: ubuntu-latest strategy: fail-fast: false matrix: python-version: ["3.7", "3.8", "3.9", "3.10"] steps: - name: "CHECKOUT: nvme-stas" uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: "INSTALL: additional packages" run: | sudo apt update sudo apt-get install --yes --quiet python3-pip cmake libgirepository1.0-dev libsystemd-dev python3-systemd swig libjson-c-dev || true sudo python3 -m pip install --upgrade pip wheel meson ninja python3 -m pip install --upgrade dasbus pylint==2.17.7 pyflakes PyGObject lxml pyudev - 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 python3 -m pylint --version echo "pyflakes $(python3 -m pyflakes --version)" - name: Pylint run: | python3 -m pylint -j 0 --rcfile=test/pylint.rc .build/stacctl .build/stacd .build/stafctl .build/stafd .build/stasadm .build/staslib - name: Pyflakes if: always() run: | python3 -m pyflakes .build/stacctl .build/stacd .build/stafctl .build/stafd .build/stasadm .build/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@v4 - name: "BLACK" uses: psf/black@stable with: options: "--check --diff --color --line-length 120 --skip-string-normalization --extend-exclude (subprojects|debian|.build)" src: "."