From 68b6f8b46374a9e1cc6b0599419b72da3323b013 Mon Sep 17 00:00:00 2001 From: Douglas Schilling Landgraf Date: Sun, 27 Oct 2024 14:29:26 -0400 Subject: [PATCH] packit: add actions for RPM tests - build rpm - install rpm - execute setup Signed-off-by: Douglas Schilling Landgraf --- .packit.sh | 0 .packit.yaml | 14 +++++++++++-- Makefile | 14 +++++++------ rpm/.gitignore | 2 +- tests/setup-test/.gitignore | 1 + tests/setup-test/test_setup.sh | 37 ++++++++++++++++++++++++++++++++++ 6 files changed, 59 insertions(+), 9 deletions(-) mode change 100644 => 100755 .packit.sh create mode 100644 tests/setup-test/.gitignore create mode 100755 tests/setup-test/test_setup.sh diff --git a/.packit.sh b/.packit.sh old mode 100644 new mode 100755 diff --git a/.packit.yaml b/.packit.yaml index 942b3b08..251da7f2 100644 --- a/.packit.yaml +++ b/.packit.yaml @@ -7,10 +7,22 @@ upstream_tag_template: v{version} srpm_build_deps: - make + - container-selinux + - golang-github-cpuguy83-md2man + - selinux-policy + - selinux-policy-devel + - selinux-policy-base + - selinux-policy-targeted actions: fix-spec-file: - bash .packit.sh + - git clone https://github.com/containers/qm /tmp/qm-{version} + - make dist DIST_DIR=/tmp/qm-{version} + - make rpm DIST_DIR=/tmp/qm-{version} + - sudo dnf install -y ./rpmbuild/RPMS/noarch/qm*.rpm + - bash tests/setup-test/test_setup.sh + jobs: - job: copr_build @@ -60,7 +72,6 @@ jobs: disk: - size: ">= 20 GB" - - job: tests trigger: pull_request identifier: e2e-ffi @@ -77,7 +88,6 @@ jobs: hardware: disk: - size: ">= 20 GB" - - size: ">= 20 GB" - job: tests trigger: pull_request diff --git a/Makefile b/Makefile index 7abe711d..7d5402c0 100644 --- a/Makefile +++ b/Makefile @@ -105,14 +105,17 @@ codespell: ## - Runs codespell to check for spelling errors @codespell -S tmp,.git -L te -w clean: ## - Removes generated files and dirs - rm -f *~ *.tc *.pp *.pp.bz2 - rm -rf tmp *.tar.gz ${RPM_TOPDIR} + @rm -f *~ *.tc *.pp *.pp.bz2 + @rm -rf tmp *.tar.gz ${RPM_TOPDIR} man: qm.8.md ## - Generates the QM man page go-md2man --in qm.8.md --out qm.8 .PHONY: dist +DIST_DIR ?= ../qm # Set default path to ../qm, but allow overriding + dist: ## - Creates the QM distribution package + mkdir -p ${RPM_TOPDIR}/{RPMS,SRPMS,BUILD,SOURCES} tar cvz \ --exclude='.git' \ --dereference \ @@ -120,14 +123,13 @@ dist: ## - Creates the QM distribution package --exclude='demos' \ --exclude='.github' \ --transform s/qm/qm-${VERSION}/ \ - -f /tmp/v${VERSION}.tar.gz ../qm - mv /tmp/v${VERSION}.tar.gz ./rpm + -f ${RPM_TOPDIR}/SOURCES/qm-${VERSION}.tar.gz $(DIST_DIR) + ln -sf ${RPM_TOPDIR}/SOURCES/qm-${VERSION}.tar.gz ${RPM_TOPDIR}/SOURCES/v${VERSION}.tar.gz .PHONY: rpm rpm: clean dist ## - Creates a local RPM package, useful for development mkdir -p ${RPM_TOPDIR}/{RPMS,SRPMS,BUILD,SOURCES} tools/version-update -v ${VERSION} - cp ./rpm/v${VERSION}.tar.gz ${RPM_TOPDIR}/SOURCES rpmbuild -ba \ --define="u_enable_qm_dropin_img_tempdir ${EN_QM_DROP_IMG_TMPDIR}" \ --define="u_enable_qm_window_manager ${EN_QM_WINDOW_MGR}" \ @@ -136,7 +138,7 @@ rpm: clean dist ## - Creates a local RPM package, useful for develop --define="u_enable_qm_mount_bind_sound ${EN_QM_MNT_BIND_SOUND}" \ --define="u_enable_qm_mount_bind_kvm ${EN_QM_MNT_BIND_KVM}" \ --define="u_enable_qm_mount_bind_input ${EN_QM_MNT_BIND_INPUT}" \ - --define="u_enable_qm_mount_bind_video ${EN_QM_MNT_BIND_VIDEO}" \ + --define="u_enable_qm_mount_bind_video ${EN_QM_MNT_BIND_VIDEO}" \ --define="_topdir ${RPM_TOPDIR}" \ --define="version ${VERSION}" \ ${SPECFILE} diff --git a/rpm/.gitignore b/rpm/.gitignore index 8999a8b0..335ec957 100644 --- a/rpm/.gitignore +++ b/rpm/.gitignore @@ -1 +1 @@ -v*.tar.gz +*.tar.gz diff --git a/tests/setup-test/.gitignore b/tests/setup-test/.gitignore new file mode 100644 index 00000000..5bccdecd --- /dev/null +++ b/tests/setup-test/.gitignore @@ -0,0 +1 @@ +qm/ diff --git a/tests/setup-test/test_setup.sh b/tests/setup-test/test_setup.sh new file mode 100755 index 00000000..a6482362 --- /dev/null +++ b/tests/setup-test/test_setup.sh @@ -0,0 +1,37 @@ +#!/bin/bash -ex + +# Define variables for repository URL and directory +REPO_URL="https://github.com/containers/qm.git" +REPO_DIR="qm" + +# Step 1: Clone the repository +rm -rf "$REPO_DIR" +echo "Cloning the repository..." +git clone "$REPO_URL" "$REPO_DIR" +cd "$REPO_DIR" || exit 1 + +# Step 2: Build the RPM package +echo "Building the RPM package..." +make rpm +if [ $? -ne 0 ]; then + echo "RPM build failed." + exit 1 +fi + +# Optional: Install the RPM package to test it fully +echo "Installing the RPM package..." +sudo dnf install -y rpmbuild/RPMS/noarch/qm*.rpm +if [ $? -ne 0 ]; then + echo "RPM installation failed." + exit 1 +fi + +# Step 3: Run the setup script and check its exit status +echo "Running /usr/share/qm/setup..." +if /usr/share/qm/setup; then + echo "Setup script ran successfully." + rm -rf qm && exit 0 +else + echo "Setup script failed." + rm -rf qm && exit 1 +fi