tests: ship all tests in the -tests sub-package
No tests should be run directly from git, but should rather be installed
onto the test system using rpm and run from there. This moves towards
unifying our two types of test cases.
The new structure of is now:
`test/cmd`: the executors, one for each test-case. This is installed
into `/usr/libexec/test/osbuild-composer`.
`test/data`: data and config used by the tests. This is installed into
`/usr/share/tests/osbuild-composer`.
`schutzbot`: configuration of the actual test run. In particular, this
is where the distros and repositories to test against are
configured.
This is very much still work-in-progress, and is only the first step
towards simplifying schutzbot. Apart from moving files around, this
should be a noop.
Signed-off-by: Tom Gundersen <teg@jklm.no>
This commit is contained in:
parent
21e6ae5ef4
commit
805ae59151
81 changed files with 247 additions and 160 deletions
85
test/cmd/koji.sh
Executable file
85
test/cmd/koji.sh
Executable file
|
|
@ -0,0 +1,85 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
OSBUILD_COMPOSER_TEST_DATA=/usr/share/tests/osbuild-composer/
|
||||
|
||||
# Get OS data.
|
||||
source /etc/os-release
|
||||
|
||||
# Colorful output.
|
||||
function greenprint {
|
||||
echo -e "\033[1;32m${1}\033[0m"
|
||||
}
|
||||
|
||||
if [[ $ID == rhel ]] && ! rpm -q epel-release; then
|
||||
greenprint "📦 Setting up EPEL repository"
|
||||
curl -Ls --retry 5 --output /tmp/epel.rpm \
|
||||
https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
|
||||
sudo rpm -Uvh /tmp/epel.rpm
|
||||
fi
|
||||
|
||||
greenprint "Installing required packages"
|
||||
sudo dnf -y install \
|
||||
container-selinux \
|
||||
dnsmasq \
|
||||
krb5-workstation \
|
||||
koji \
|
||||
podman \
|
||||
python3 \
|
||||
sssd-krb5
|
||||
|
||||
if [[ $ID == rhel ]]; then
|
||||
greenprint "Tweaking podman, maybe."
|
||||
sudo cp /usr/share/tests/osbuild-composer/vendor/87-podman-bridge.conflist /etc/cni/net.d/
|
||||
sudo cp /usr/share/tests/osbuild-composer/vendor/dnsname /usr/libexec/cni/
|
||||
fi
|
||||
|
||||
greenprint "Starting containers"
|
||||
sudo ./internal/upload/koji/run-koji-container.sh start
|
||||
|
||||
greenprint "Copying custom worker config"
|
||||
sudo mkdir -p /etc/osbuild-worker
|
||||
sudo cp "${OSBUILD_COMPOSER_TEST_DATA}"/composer/osbuild-worker.toml \
|
||||
/etc/osbuild-worker/
|
||||
|
||||
greenprint "Adding kerberos config"
|
||||
sudo cp \
|
||||
/tmp/osbuild-composer-koji-test/client.keytab \
|
||||
/etc/osbuild-composer/client.keytab
|
||||
sudo cp \
|
||||
/tmp/osbuild-composer-koji-test/client.keytab \
|
||||
/etc/osbuild-worker/client.keytab
|
||||
sudo cp \
|
||||
"${OSBUILD_COMPOSER_TEST_DATA}"/kerberos/krb5-local.conf \
|
||||
/etc/krb5.conf.d/local
|
||||
|
||||
greenprint "Adding generated CA cert for Koji"
|
||||
sudo cp \
|
||||
/tmp/osbuild-composer-koji-test/ca-crt.pem \
|
||||
/etc/pki/ca-trust/source/anchors/koji-ca-crt.pem
|
||||
sudo update-ca-trust
|
||||
|
||||
greenprint "Restarting composer to pick up new config"
|
||||
sudo systemctl restart osbuild-composer
|
||||
sudo systemctl restart osbuild-worker\@1
|
||||
|
||||
greenprint "Testing Koji"
|
||||
koji --server=http://localhost:8080/kojihub --user=osbuild --password=osbuildpass --authtype=password hello
|
||||
|
||||
greenprint "Creating Koji task"
|
||||
koji --server=http://localhost:8080/kojihub --user kojiadmin --password kojipass --authtype=password make-task image
|
||||
|
||||
greenprint "Pushing compose to Koji"
|
||||
sudo ./tools/koji-compose.py "${ID}-${VERSION_ID%.*}"
|
||||
|
||||
greenprint "Show Koji task"
|
||||
koji --server=http://localhost:8080/kojihub taskinfo 1
|
||||
koji --server=http://localhost:8080/kojihub buildinfo 1
|
||||
|
||||
greenprint "Stopping containers"
|
||||
sudo ./internal/upload/koji/run-koji-container.sh stop
|
||||
|
||||
greenprint "Removing generated CA cert"
|
||||
sudo rm \
|
||||
/etc/pki/ca-trust/source/anchors/koji-ca-crt.pem
|
||||
sudo update-ca-trust
|
||||
Loading…
Add table
Add a link
Reference in a new issue