Use Packit/TMT to run Python-based udev tests #2518
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
name: stratisd python-based tests | |
# yamllint disable-line rule:truthy | |
on: | |
push: | |
branches: | |
- master | |
paths-ignore: | |
- 'CHANGES.txt' | |
- '**/README.md' | |
- 'README_tests.md' | |
- ".packit.yaml" | |
pull_request: | |
branches: | |
- master | |
paths-ignore: | |
- 'CHANGES.txt' | |
- '**/README.md' | |
- 'README_tests.md' | |
- ".packit.yaml" | |
workflow_dispatch: | |
# cancel the in-progress workflow when PR is refreshed. | |
# yamllint disable rule:line-length | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }} | |
cancel-in-progress: true | |
jobs: | |
python-based-tests: | |
strategy: | |
matrix: | |
include: | |
# MANDATORY CHECKS USING CURRENT DEVELOPMENT ENVIRONMENT | |
- toolchain: 1.72.0 # CURRENT DEVELOPMENT RUST TOOLCHAIN | |
# MANDATORY CHECKS USING LOWEST SUPPORTED ENVIRONMENT PROXY | |
- toolchain: 1.71.1 # LOWEST SUPPORTED RUST TOOLCHAIN | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Run apt-get update | |
run: sudo apt-get -q update | |
- name: Install dependencies for Ubuntu | |
run: > | |
DEBIAN_FRONTEND=noninteractive | |
sudo apt-get install -y | |
asciidoc | |
clang | |
curl | |
libblkid-dev | |
libcryptsetup-dev | |
libdbus-1-dev | |
libdevmapper-dev | |
libsystemd-dev | |
libudev-dev | |
make | |
thin-provisioning-tools | |
udev | |
xfsprogs | |
- name: Install Python dependencies | |
run: > | |
sudo python -m pip install | |
dbus-python | |
dbus-client-gen | |
dbus-python-client-gen | |
psutil | |
pyudev | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
components: cargo | |
toolchain: ${{ matrix.toolchain }} | |
- name: Build stratisd | |
run: PROFILEDIR=debug make -f Makefile build-all | |
- name: Install stratisd | |
run: sudo make PROFILEDIR=debug -f Makefile install | |
- name: Workaround for dbus inotify | |
run: sudo cp stratisd.conf /usr/share/dbus-1/system.d | |
- name: Reload udev | |
run: sudo udevadm control --reload | |
- name: Tests using Rust ${{ matrix.toolchain }} | |
run: > | |
sudo make | |
RUST_LOG=stratisd=debug | |
STRATIS_DUMPMETADATA=/usr/bin/stratis-dumpmetadata | |
STRATISD=/usr/libexec/stratisd | |
PYTHONPATH=./src | |
udev-tests dump-metadata-tests startup-tests | |
working-directory: ./tests/client-dbus | |
# PYTHON-BASED TESTS WITH TANG | |
python-based-checks_with_tang: | |
runs-on: ubuntu-22.04 | |
container: | |
image: fedora:38 # CURRENT DEVELOPMENT ENVIRONMENT | |
options: --privileged -v /dev:/dev --userns=host --ipc=host -v /run/dbus/system_bus_socket:/run/dbus/system_bus_socket:ro -v /usr/share/dbus-1:/usr/share/dbus-1 -v /run/udev:/run/udev -v /usr/lib/udev:/usr/lib/udev | |
services: | |
tang: | |
# yamllint disable rule:line-length | |
image: ghcr.io/stratis-storage/stratisd/tang:38 # CURRENT DEVELOPMENT ENVIRONMENT | |
credentials: | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
options: --privileged -p 80:80 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install dependencies for Fedora | |
# cracklib-dicts: https://github.com/stratis-storage/project/issues/581 | |
run: > | |
dnf install -y | |
asciidoc | |
clang | |
clevis | |
clevis-luks | |
cryptsetup-devel | |
cracklib-dicts | |
curl | |
dbus-devel | |
dbus-tools | |
device-mapper-devel | |
device-mapper-persistent-data | |
glibc-static | |
libblkid-devel | |
make | |
ncurses | |
python3-dbus | |
python3-dbus-client-gen | |
python3-dbus-python-client-gen | |
python3-psutil | |
python3-pyudev | |
systemd-devel | |
systemd-udev | |
xfsprogs | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
components: cargo | |
toolchain: 1.72.0 # CURRENT DEVELOPMENT RUST TOOLCHAIN | |
- name: Build stratisd | |
run: PROFILEDIR=debug make -f Makefile build-all | |
- name: Install stratisd | |
run: PROFILEDIR=debug make -f Makefile install | |
- name: Workaround for dbus inotify | |
run: cp stratisd.conf /usr/share/dbus-1/system.d | |
- name: Reload udev | |
run: udevadm control --reload | |
- name: Run D-Bus based bind tests | |
run: > | |
TANG_URL=tang | |
RUST_LOG=stratisd=debug | |
STRATISD=/usr/libexec/stratisd | |
PYTHONPATH=./src | |
make -f Makefile tang-tests | |
working-directory: ./tests/client-dbus |