From 75337d1d419a56b7e27178221abc9fad69832182 Mon Sep 17 00:00:00 2001 From: mulhern Date: Wed, 20 Sep 2023 16:16:38 -0400 Subject: [PATCH] Use Packit/TMT to run Python-based udev tests Run all the tests defined in the udev subdirectory that should be run as continuous integration and not as part of nightly CI. Signed-off-by: mulhern --- .fmf/version | 1 + .github/workflows/python.yml | 155 ----------------------------------- .packit.yaml | 6 +- plans/all.fmf | 14 ++++ test/udev/main.fmf | 12 +++ 5 files changed, 32 insertions(+), 156 deletions(-) create mode 100644 .fmf/version delete mode 100644 .github/workflows/python.yml create mode 100644 plans/all.fmf create mode 100644 test/udev/main.fmf diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 00000000000..d00491fd7e5 --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml deleted file mode 100644 index 7cc1a2401f0..00000000000 --- a/.github/workflows/python.yml +++ /dev/null @@ -1,155 +0,0 @@ ---- -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 diff --git a/.packit.yaml b/.packit.yaml index 243e3d9666f..93464b84da0 100644 --- a/.packit.yaml +++ b/.packit.yaml @@ -29,6 +29,10 @@ srpm_build_deps: jobs: - job: copr_build trigger: pull_request - manual_trigger: true + targets: + - fedora-stable + + - job: tests + trigger: pull_request targets: - fedora-stable diff --git a/plans/all.fmf b/plans/all.fmf new file mode 100644 index 00000000000..1768d5779bd --- /dev/null +++ b/plans/all.fmf @@ -0,0 +1,14 @@ +summary: top level management +prepare: + - name: Install packages + how: install + package: + - tang + - systemd + - name: Start tang server + how: shell + script: systemctl enable tangd.socket --now +discover: + how: fmf +execute: + how: tmt diff --git a/test/udev/main.fmf b/test/udev/main.fmf new file mode 100644 index 00000000000..1884957957d --- /dev/null +++ b/test/udev/main.fmf @@ -0,0 +1,12 @@ +summary: Run udev tests +duration: 20m +require: + - clevis-luks + - make + - python3-dbus + - python3-dbus-client-gen + - python3-dbus-python-client-gen + - python3-psutil + - python3-pyudev +test: TANG_URL=localhost RUST_LOG=stratisd=debug STRATISD=/usr/libexec/stratisd STRATIS_DUMPMETADATA=/usr/bin/stratis-dumpmetadata PYTHONPATH=./src make -f Makefile udev-tests tang-tests dump-metadata-tests +path: /tests/client-dbus