Skip to content

Commit

Permalink
Merge pull request #436 from martin-belanger/fix-github-workflows
Browse files Browse the repository at this point in the history
Fixing GitHub workflows
  • Loading branch information
martin-belanger authored Nov 18, 2024
2 parents 65f525b + ee12f7f commit c09aa02
Show file tree
Hide file tree
Showing 4 changed files with 84 additions and 23 deletions.
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/black@24.10.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", "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/meson-build@v1.0.3
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/black@24.10.0
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5.3.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/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
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

0 comments on commit c09aa02

Please sign in to comment.