Compare commits
40 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c7e81af30c | ||
|
|
1a2de8d506 | ||
|
|
02f8677543 | ||
|
|
6b52413d65 | ||
|
|
9319e2af85 | ||
|
|
cebefe1b7d |
||
|
|
5939cebea6 | ||
|
|
1eda7e0e0a | ||
|
|
b6186add53 | ||
|
|
f36ce6ed85 | ||
|
|
789da663e1 |
||
|
|
043debb9d5 |
||
|
|
3c79d3969a |
||
|
|
8b0e9b195b |
||
|
|
3bed7b0cac |
||
|
|
5ef97758e6 | ||
|
|
0a1b8ee906 | ||
|
|
4dcac508a3 | ||
|
|
e6ff2e09bc | ||
|
|
2d0554a4ff | ||
|
|
070472b95c | ||
|
|
2b965ecfea | ||
|
|
9e04012a7d | ||
|
|
ee0ac6e91f | ||
|
|
eb125edbe3 | ||
|
|
e09c20cf57 | ||
|
|
63f1890b19 | ||
|
|
4a4ce0fa1c | ||
|
|
198b573659 | ||
|
|
ef136d1f71 | ||
|
|
797add905c | ||
|
|
01d2544218 | ||
|
|
b7f403b2f0 | ||
|
|
2314b38073 | ||
|
|
9d31b1aa5e | ||
|
|
3bcd569899 | ||
|
|
299dde4e93 | ||
|
|
e092427d00 | ||
|
|
960c2b1e69 | ||
|
|
250ba4ff3b |
25 changed files with 36953 additions and 1186 deletions
1
.fmf/version
Normal file
1
.fmf/version
Normal file
|
|
@ -0,0 +1 @@
|
|||
1
|
||||
36
.gitignore
vendored
36
.gitignore
vendored
|
|
@ -89,3 +89,39 @@
|
|||
/osbuild-89.tar.gz
|
||||
/osbuild-90.tar.gz
|
||||
/osbuild-91.tar.gz
|
||||
/osbuild-92.tar.gz
|
||||
/osbuild-95.tar.gz
|
||||
/osbuild-96.tar.gz
|
||||
/osbuild-97.tar.gz
|
||||
/osbuild-98.tar.gz
|
||||
/osbuild-99.tar.gz
|
||||
/osbuild-100.tar.gz
|
||||
/osbuild-101.tar.gz
|
||||
/osbuild-102.tar.gz
|
||||
/osbuild-103.tar.gz
|
||||
/osbuild-104.tar.gz
|
||||
/osbuild-105.tar.gz
|
||||
/osbuild-106.tar.gz
|
||||
/osbuild-108.tar.gz
|
||||
/osbuild-109.tar.gz
|
||||
/osbuild-110.tar.gz
|
||||
/osbuild-111.tar.gz
|
||||
/osbuild-112.tar.gz
|
||||
/osbuild-113.tar.gz
|
||||
/osbuild-114.tar.gz
|
||||
/osbuild-115.tar.gz
|
||||
/osbuild-116.tar.gz
|
||||
/osbuild-117.tar.gz
|
||||
/osbuild-118.tar.gz
|
||||
/osbuild-119.tar.gz
|
||||
/osbuild-122.tar.gz
|
||||
/osbuild-123.tar.gz
|
||||
/osbuild-124.tar.gz
|
||||
/osbuild-125.tar.gz
|
||||
/osbuild-126.tar.gz
|
||||
/osbuild-129.tar.gz
|
||||
/osbuild-131.tar.gz
|
||||
/osbuild-132.tar.gz
|
||||
/osbuild-133.tar.gz
|
||||
/osbuild-134.tar.gz
|
||||
/osbuild-135.tar.gz
|
||||
|
|
|
|||
17
.packit.yaml
17
.packit.yaml
|
|
@ -17,15 +17,23 @@ srpm_build_deps: []
|
|||
actions:
|
||||
get-current-version: bash -c "git describe --tags --abbrev=0 | sed 's|v||'"
|
||||
|
||||
# Handle only releases without a "dot" (e.g. v88.2), since "dot" releases should never be released to Fedora
|
||||
# "dot" releases are used only for "backports" to RHEL.
|
||||
upstream_tag_include: 'v\d+'
|
||||
|
||||
jobs:
|
||||
- &copr
|
||||
job: copr_build
|
||||
trigger: pull_request
|
||||
targets:
|
||||
- centos-stream-8-aarch64
|
||||
- centos-stream-8-x86_64
|
||||
- centos-stream-9-aarch64
|
||||
- centos-stream-9-s390x
|
||||
- centos-stream-9-pcc64le
|
||||
- centos-stream-9-x86_64
|
||||
- centos-stream-10-aarch64
|
||||
- centos-stream-10-s390x
|
||||
- centos-stream-10-ppc64le
|
||||
- centos-stream-10-x86_64
|
||||
- epel-8-aarch64
|
||||
- epel-8-x86_64
|
||||
- epel-9-aarch64
|
||||
|
|
@ -39,6 +47,11 @@ jobs:
|
|||
branch: main
|
||||
owner: "@osbuild" # copr repo namespace
|
||||
project: osbuild # copr repo name so you can consume the builds
|
||||
- <<: *copr
|
||||
trigger: release
|
||||
branch: main
|
||||
owner: "@osbuild" # copr repo namespace
|
||||
project: osbuild-stable # copr repo name so you can consume the builds
|
||||
- job: propose_downstream
|
||||
trigger: release
|
||||
dist_git_branches:
|
||||
|
|
|
|||
|
|
@ -1,23 +0,0 @@
|
|||
From e8c219036302817882d469400b08cbac4b93a781 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Kellner <christian@kellner.me>
|
||||
Date: Fri, 20 Aug 2021 14:18:28 +0200
|
||||
Subject: [PATCH 1/3] runners: add Fedora 36 runner
|
||||
|
||||
New `org.osbuild.fedora36` which is re-using the f30 runner.
|
||||
Needed since Fedora 36 was branched already.
|
||||
---
|
||||
runners/org.osbuild.fedora36 | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
create mode 120000 runners/org.osbuild.fedora36
|
||||
|
||||
diff --git a/runners/org.osbuild.fedora36 b/runners/org.osbuild.fedora36
|
||||
new file mode 120000
|
||||
index 0000000..d46777b
|
||||
--- /dev/null
|
||||
+++ b/runners/org.osbuild.fedora36
|
||||
@@ -0,0 +1 @@
|
||||
+org.osbuild.fedora30
|
||||
\ No newline at end of file
|
||||
--
|
||||
2.21.1 (Apple Git-122.3)
|
||||
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
From 135b20a487c2b7435e296c9cfc7f96a826ba2d19 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Ond=C5=99ej=20Budai?= <ondrej@budai.cz>
|
||||
Date: Mon, 15 Aug 2022 14:13:55 +0200
|
||||
Subject: [PATCH] runners: add fedora38
|
||||
|
||||
It's that time of the year again.
|
||||
---
|
||||
runners/org.osbuild.fedora38 | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
create mode 120000 runners/org.osbuild.fedora38
|
||||
|
||||
diff --git a/runners/org.osbuild.fedora38 b/runners/org.osbuild.fedora38
|
||||
new file mode 120000
|
||||
index 0000000..d46777b
|
||||
--- /dev/null
|
||||
+++ b/runners/org.osbuild.fedora38
|
||||
@@ -0,0 +1 @@
|
||||
+org.osbuild.fedora30
|
||||
\ No newline at end of file
|
||||
--
|
||||
2.37.2
|
||||
|
||||
44
PR1824.patch
Normal file
44
PR1824.patch
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
From 2a69d10da676d067bf42b936114d3785fd1c37da Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Hozza?= <thozza@redhat.com>
|
||||
Date: Thu, 25 Jul 2024 10:27:44 +0200
|
||||
Subject: [PATCH] Test: fix dnf4.mark stage test with DNF5
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
DNF5 contains a breaking change in the repoquery --qf output,
|
||||
specifically it does not include the trailing newline. This breaks the
|
||||
test case e.g. on the latest Fedora Rawhide [1].
|
||||
|
||||
As a fix, explicitly use 'dnf4' for now, until the inconsistency is
|
||||
fixed in the upstream [2].
|
||||
|
||||
[1] https://artifacts.dev.testing-farm.io/3a3a2898-0a6a-42eb-8792-660f03c35c3c/
|
||||
[2] https://github.com/rpm-software-management/dnf5/issues/709
|
||||
|
||||
Signed-off-by: Tomáš Hozza <thozza@redhat.com>
|
||||
---
|
||||
test/run/test_stages.py | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/test/run/test_stages.py b/test/run/test_stages.py
|
||||
index a4d78b7e..ca224f07 100644
|
||||
--- a/test/run/test_stages.py
|
||||
+++ b/test/run/test_stages.py
|
||||
@@ -537,9 +537,12 @@ class TestStages(test.TestBase):
|
||||
assert os.path.isdir(tree)
|
||||
|
||||
# we're going to verify that packages in the tree are marked according to
|
||||
+ # Explicitly use 'dnf4' for now, because 'dnf5' contains a breaking change
|
||||
+ # in the repoquery --qf output, specifically it does not add a trailing newline.
|
||||
+ # We can use plan 'dnf' again once https://github.com/rpm-software-management/dnf5/issues/709 is fixed.
|
||||
r = subprocess.run(
|
||||
[
|
||||
- "dnf",
|
||||
+ "dnf4",
|
||||
"--installroot", tree,
|
||||
"repoquery", "--installed",
|
||||
"--qf", "%{name},%{reason}"
|
||||
--
|
||||
2.45.2
|
||||
|
||||
|
|
@ -1,3 +1,3 @@
|
|||
This repository is maintained by packit.
|
||||
https://packit.dev/
|
||||
The file was generated using packit 0.78.1.post5+g4b99855.
|
||||
The file was generated using packit 0.104.0.
|
||||
|
|
|
|||
BIN
osbuild-94.tar.gz
Normal file
BIN
osbuild-94.tar.gz
Normal file
Binary file not shown.
989
osbuild.spec
989
osbuild.spec
File diff suppressed because it is too large
Load diff
10
plans/integration-tests.fmf
Normal file
10
plans/integration-tests.fmf
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
summary: Run osbuild integration tests
|
||||
prepare:
|
||||
how: install
|
||||
package:
|
||||
- osbuild
|
||||
discover:
|
||||
how: fmf
|
||||
filter: tag:integration-test
|
||||
execute:
|
||||
how: tmt
|
||||
13
plans/unit-tests.fmf
Normal file
13
plans/unit-tests.fmf
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
summary: Run osbuild unit tests from dist-git sources
|
||||
prepare:
|
||||
how: install
|
||||
package:
|
||||
- git
|
||||
- make
|
||||
- osbuild
|
||||
discover:
|
||||
how: fmf
|
||||
dist-git-source: true
|
||||
filter: tag:unit-test
|
||||
execute:
|
||||
how: tmt
|
||||
2
sources
2
sources
|
|
@ -1 +1 @@
|
|||
SHA512 (osbuild-91.tar.gz) = 8a608aaad25033478d86ef7b3935c9bcbbb18d2a60eb074b5140fdb1bbcbd4b0c90605ebe5740c0c52c54a33d913b1747fab6533ab6e085ec81e773aa9bd7ee8
|
||||
SHA512 (osbuild-135.tar.gz) = b95ed7b75756845ec1baaecbd7340edee78147daec7985d706f1cb690ef23b5feeef2b172c954bf4136eccab223ee5422f32da401f25f7ef699535a0aa6932df
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
52
tests/image-build/build-images.sh
Executable file
52
tests/image-build/build-images.sh
Executable file
|
|
@ -0,0 +1,52 @@
|
|||
#!/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"
|
||||
;;
|
||||
centos-10)
|
||||
IMAGE_MANIFEST="${MANIFESTS_DIR}/centos-10.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}"
|
||||
4
tests/image-build/main.fmf
Normal file
4
tests/image-build/main.fmf
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
summary: Build simple image using osbuild
|
||||
tag: integration-test
|
||||
duration: 1h
|
||||
test: ./build-images.sh ./manifests
|
||||
3518
tests/image-build/manifests/centos-10.json
Normal file
3518
tests/image-build/manifests/centos-10.json
Normal file
File diff suppressed because it is too large
Load diff
7202
tests/image-build/manifests/centos-8.json
Normal file
7202
tests/image-build/manifests/centos-8.json
Normal file
File diff suppressed because it is too large
Load diff
6799
tests/image-build/manifests/centos-9.json
Normal file
6799
tests/image-build/manifests/centos-9.json
Normal file
File diff suppressed because it is too large
Load diff
7073
tests/image-build/manifests/fedora.json
Normal file
7073
tests/image-build/manifests/fedora.json
Normal file
File diff suppressed because it is too large
Load diff
4083
tests/image-build/manifests/rhel-8.json
Normal file
4083
tests/image-build/manifests/rhel-8.json
Normal file
File diff suppressed because it is too large
Load diff
7021
tests/image-build/manifests/rhel-9.json
Normal file
7021
tests/image-build/manifests/rhel-9.json
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -1,25 +0,0 @@
|
|||
---
|
||||
- hosts: localhost
|
||||
roles:
|
||||
- role: standard-test-source
|
||||
tags:
|
||||
- always
|
||||
- role: standard-test-basic
|
||||
tags:
|
||||
- classic
|
||||
required_packages:
|
||||
- osbuild
|
||||
- git
|
||||
- make
|
||||
- python3-mako
|
||||
- python3-pytest
|
||||
tests:
|
||||
- smoke:
|
||||
dir: smoke
|
||||
run: osbuild --help
|
||||
- unit:
|
||||
dir: source
|
||||
run: python3 -m pytest test/mod
|
||||
- image:
|
||||
dir: tests
|
||||
run: osbuild fedora-boot.json --store=/var/tmp/osbuild/store --output-directory=/var/tmp/osbuild/out
|
||||
4
tests/unit-tests/main.fmf
Normal file
4
tests/unit-tests/main.fmf
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
summary: Run osbuild unit tests from dist-git sources
|
||||
tag: unit-test
|
||||
duration: 4h
|
||||
test: ./prep-host-environment.sh; sudo chcon $(matchpathcon -n /usr/bin/osbuild) ./run-unit-tests.sh; ./run-unit-tests.sh
|
||||
35
tests/unit-tests/prep-host-environment.sh
Executable file
35
tests/unit-tests/prep-host-environment.sh
Executable file
|
|
@ -0,0 +1,35 @@
|
|||
#!/usr/bin/bash
|
||||
# Prepare the host environment for running the osbuild unit tests.
|
||||
# This includes installing missing dependencies and tools.
|
||||
|
||||
set -euxo pipefail
|
||||
|
||||
source /etc/os-release
|
||||
|
||||
# Move to the checked out git repo with the test plans
|
||||
# this should be the root of the dist-git repo
|
||||
cd "${TMT_TREE}"
|
||||
|
||||
# install all test dependencies
|
||||
sudo dnf install -y \
|
||||
rpmdevtools \
|
||||
python3-mako \
|
||||
python3-pip \
|
||||
rpm-ostree \
|
||||
dosfstools \
|
||||
gdisk \
|
||||
python3-tomli-w
|
||||
sudo dnf builddep -y osbuild.spec
|
||||
|
||||
# Install pytst from pip, because the version in some RHEL / CentOS releases is too old
|
||||
sudo pip3 install pytest
|
||||
|
||||
# Make sure that /usr/lib/systemd/boot/efi/linuxx64.efi.stub is available to enable pe32p tests
|
||||
case "${ID}-${VERSION_ID}" in
|
||||
rhel-8.* | centos-8)
|
||||
sudo dnf install -y systemd-udev
|
||||
;;
|
||||
*)
|
||||
sudo dnf install -y systemd-boot-unsigned
|
||||
;;
|
||||
esac
|
||||
55
tests/unit-tests/run-unit-tests.sh
Executable file
55
tests/unit-tests/run-unit-tests.sh
Executable file
|
|
@ -0,0 +1,55 @@
|
|||
#!/usr/bin/bash
|
||||
# Execute osbuild unit tests from a checked out dist-git repo
|
||||
|
||||
set -euxo pipefail
|
||||
|
||||
source /etc/os-release
|
||||
|
||||
# The 'test/run/test_assemblers.py::test_tar' test case uses system tar to extract the built tar archive.
|
||||
# However, files in the tar archive can have SELinux context not present in the system policy. Therefore,
|
||||
# in order for the system tar to be able to set it when extracting the archive, it must be labeled with
|
||||
# 'install_exec_t' type.
|
||||
|
||||
ORIGINAL_TAR_CONTEXT="$(matchpathcon -n "$(which tar)")"
|
||||
sudo chcon "system_u:object_r:install_exec_t:s0" "$(which tar)"
|
||||
function restore_tar_context() {
|
||||
sudo chcon "${ORIGINAL_TAR_CONTEXT}" "$(which tar)"
|
||||
}
|
||||
trap restore_tar_context EXIT
|
||||
|
||||
# Run the unit tests
|
||||
# Note:
|
||||
# - Ignore the boot test, because it requires qemu-system-x86_64 not available on all distributions.
|
||||
# - Ignore source code tests, which run linters, since we can't ensure that all linters are available
|
||||
# and of the same version as in upstream.
|
||||
# - Explicitly mark btrfs as unsupported on CentOS / RHEL
|
||||
|
||||
if [ "${ID}" == "centos" ] || [ "${ID}" == "rhel" ]; then
|
||||
UNSUPPORTED_FS="--unsupported-fs btrfs"
|
||||
fi
|
||||
|
||||
TEST_SELECTION_EXPR="not (TestBoot and boot)"
|
||||
|
||||
# disable some tests on RHEL-8
|
||||
if ([ "${ID}" == "rhel" ] || [ "${ID}" == "centos" ]) && [ "${VERSION_ID%%.*}" == "8" ]; then
|
||||
# qemu-img info in RHEL-8 produces "raw" as the image format for "vdi" images, which causes tests to fail. Skip it.
|
||||
TEST_SELECTION_EXPR="${TEST_SELECTION_EXPR} and not (test_qemu[ext4-vdi] or test_qemu[xfs-vdi])"
|
||||
TEST_SELECTION_EXPR="${TEST_SELECTION_EXPR} and not (TestStages and test_qemu)"
|
||||
fi
|
||||
|
||||
# Move to the directory with sources
|
||||
cd "${TMT_SOURCE_DIR}"
|
||||
|
||||
# Extract the Source0 basename without extension
|
||||
SRC_DIR=$(spectool --source 0 osbuild.spec | sed 's/.\+\(osbuild-[0-9]\+\)\.tar\.gz/\1/')
|
||||
|
||||
# Move to the extracted sources directory (patches are applied by default)
|
||||
cd "${SRC_DIR}"
|
||||
|
||||
sudo python3 -m pytest \
|
||||
--rootdir "$(pwd)" \
|
||||
--ignore "$(pwd)/test/src" \
|
||||
${UNSUPPORTED_FS:-} \
|
||||
-k "${TEST_SELECTION_EXPR}" \
|
||||
-v \
|
||||
"$(pwd)/test/"
|
||||
Loading…
Add table
Add a link
Reference in a new issue