Bootstrap CI tests from internal RHEL dist-git branch

Resolves: rhbz#2174845

Signed-off-by: Tomáš Hozza <thozza@redhat.com>
This commit is contained in:
Tomáš Hozza 2023-03-28 11:42:04 +02:00
parent 2afed9bb24
commit 6bb05396df
No known key found for this signature in database
GPG Key ID: C5887AD51D9F3C2D
10 changed files with 32201 additions and 0 deletions

1
.fmf/version Normal file
View File

@ -0,0 +1 @@
1

View File

@ -0,0 +1,9 @@
summary: Build simple image using osbuild
prepare:
how: install
package:
- osbuild
execute:
script: ./tests/scripts/build-images.sh ./tests/manifests
duration: 4h

14
plans/unit-tests.fmf Normal file
View File

@ -0,0 +1,14 @@
summary: Run osbuild unit tests from source
prepare:
how: install
package:
- git
- make
- python3-mako
- python3-pytest
- osbuild
discover:
how: fmf
dist-git-source: true
execute:
how: tmt

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

7021
tests/manifests/fedora.json Normal file

File diff suppressed because it is too large Load Diff

4083
tests/manifests/rhel-8.json Normal file

File diff suppressed because it is too large Load Diff

7021
tests/manifests/rhel-9.json Normal file

File diff suppressed because it is too large Load Diff

49
tests/scripts/build-images.sh Executable file
View File

@ -0,0 +1,49 @@
#!/usr/bin/bash
set -euxo pipefail
MANIFESTS_DIR=$1
# check that MANIFESTS_DIR is a directory
if [ ! -d "$MANIFESTS_DIR" ]; then
echo "Error: $MANIFESTS_DIR is not a directory"
exit 1
fi
# ensure that we are running on x86_64 architecture
if [ "$(uname -m)" != "x86_64" ]; then
echo "Error: this script is only supported on x86_64 architecture"
exit 1
fi
. /etc/os-release
case "${ID}-${VERSION_ID}" in
fedora-*)
IMAGE_MANIFEST="${MANIFESTS_DIR}/fedora.json"
;;
rhel-8.*)
IMAGE_MANIFEST="${MANIFESTS_DIR}/rhel-8.json"
;;
rhel-9.*)
IMAGE_MANIFEST="${MANIFESTS_DIR}/rhel-9.json"
;;
centos-8)
IMAGE_MANIFEST="${MANIFESTS_DIR}/centos-8.json"
;;
centos-9)
IMAGE_MANIFEST="${MANIFESTS_DIR}/centos-9.json"
;;
*)
echo "Error: unsupported OS: ${ID}-${VERSION_ID}"
exit 1
;;
esac
OUTPUT_DIR=/var/tmp/osbuild-output
STORE_DIR=/var/tmp/osbuild-store
sudo mkdir -p "${OUTPUT_DIR}"
sudo mkdir -p "${STORE_DIR}"
# all the images are built with qcow2 format, so export it
EXPORT_PIPELINE="qcow2"
sudo osbuild --output-directory "${OUTPUT_DIR}" --store "${STORE_DIR}" --export "${EXPORT_PIPELINE}" "${IMAGE_MANIFEST}"

2
tests/unit.fmf Normal file
View File

@ -0,0 +1,2 @@
summary: Run unit tests using upstream source
test: cd ../osbuild-*/ && python3 -m pytest test/mod