Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixing GitHub workflows #436

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 2 additions & 5 deletions .github/workflows/meson-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ on:

jobs:
meson-build:
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
steps:
- name: "CHECKOUT: nvme-stas"
uses: actions/checkout@v4
Expand All @@ -22,22 +22,19 @@ jobs:

- name: "INSTALL: python packages"
run: |
sudo apt update
sudo apt-get install --yes --quiet python3-pip python3-wheel pylint pyflakes3 python3-systemd python3-pyudev python3-lxml python3-dasbus python3-gi python3-importlib-resources python3-pyfakefs

- name: "INSTALL: documentation packages"
run: |
sudo apt update
sudo apt-get install --yes --quiet docbook-xml docbook-xsl xsltproc

- name: "INSTALL: remaining debian packages"
run: |
sudo apt update
sudo apt-get install --yes --quiet iproute2 libglib2.0-dev libgirepository1.0-dev libsystemd-dev

- name: "INSTALL: pip packages"
run: |
sudo pip install vermin --break-system-packages
pip install vermin

- name: "INSTALL: libnvme packages (needed to build libnvme)"
run: |
Expand Down
91 changes: 74 additions & 17 deletions .github/workflows/pylint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,27 @@ jobs:
recursive: true
ignore: DL3041

python-lint:
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/[email protected]
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", "3.11", "3.12", "3.13"]
python-version: ["3.9", "3.10"]

steps:
- name: "CHECKOUT: nvme-stas"
Expand All @@ -41,11 +55,12 @@ jobs:
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-pyflakes python3-tomli
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: |
sudo pip install PyGObject --break-system-packages
pip install pylint --upgrade
pip install PyGObject --upgrade

- name: "BUILD: [libnvme, nvme-stas]"
uses: BSFishy/[email protected]
Expand All @@ -64,27 +79,69 @@ jobs:
python3 -VV
python3 -m site
pylint --version
echo "pyflakes $(python3 -m pyflakes --version)"
echo "pyflakes3 $(pyflakes3 --version)"

- name: Pylint
run: |
pylint -j 0 --rcfile=test/pylint.rc .build/stacctl .build/stacd .build/stafctl .build/stafd .build/stasadm .build/staslib
#- 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: |
python3 -m pyflakes .build/stacctl .build/stacd .build/stafctl .build/stafd .build/stasadm .build/staslib
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"]

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/[email protected].0
- name: Set up Python ${{ matrix.python-version }}
uses: actions/[email protected].0
with:
options: "--check --diff --color --line-length 120 --skip-string-normalization --extend-exclude (subprojects|debian|.build)"
src: "."
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/[email protected]
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
1 change: 1 addition & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ endif
purge:
ifneq ("$(wildcard ${BUILD-DIR})","")
rm -rf ${BUILD-DIR}
meson subprojects purge --confirm
endif

.PHONY: install
Expand Down
8 changes: 7 additions & 1 deletion meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,13 @@ if want_man or want_html or want_readthedocs
buildtime_modules += ['lxml']
endif

python3 = import('python').find_installation('python3', modules:buildtime_modules)
# On older systems we had to invoke Python 3 as "python3". On newer systems,
# Python 2 has been completely deprecated and Python 3 is simply named "python".
pymod = import('python')
python3 = pymod.find_installation('python3', modules:buildtime_modules, required:false)
if not python3.found()
python3 = pymod.find_installation('python', modules:buildtime_modules)
endif
python_version = python3.language_version()
python_version_req = '>=3.6'
if not python_version.version_compare(python_version_req)
Expand Down
Loading