Update to release 31

Also, add gating tests.

Resolves: rhbz#1998197
This commit is contained in:
Jacob Kozol 2021-08-26 19:08:31 +02:00
parent 72985b2bec
commit 77da1a3814
9 changed files with 152 additions and 3 deletions

1
.gitignore vendored
View File

@ -33,3 +33,4 @@
/cockpit-composer-27.tar.gz
/cockpit-composer-28.tar.gz
/cockpit-composer-30.tar.gz
/cockpit-composer-31.tar.gz

View File

@ -1,6 +1,6 @@
# This spec file has been automatically updated
Version: 30
Release: 3%{?dist}
Version: 31
Release: 1%{?dist}
Name: cockpit-composer
Summary: Composer GUI for use with Cockpit
@ -43,6 +43,14 @@ cp -a io.weldr.cockpit-composer.metainfo.xml %{buildroot}/%{_datadir}/metainfo/
%{_datadir}/metainfo/*
%changelog
* Thu Aug 26 2021 Jacob Kozol <jkozol@redhat.com> - 31-1
- Add new ostree image types
- Improve loading state when waiting for api responses
- Improve notification system
- Improve test stability
- Update NPM dependencies
- Update translations
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 30-3
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688

6
gating.yaml Normal file
View File

@ -0,0 +1,6 @@
--- !Policy
product_versions:
- rhel-9
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}

View File

@ -1 +1 @@
SHA512 (cockpit-composer-30.tar.gz) = 85396fbec4e8666ae2677b4d461e63973b1297b691dc3646168ef991792fa773ea42f2df3427285070c21eebdb9faea3fe05c44e39649f0f3bcb926f0ec57934
SHA512 (cockpit-composer-31.tar.gz) = 990cbf12a3f95ad3e9858eba69f000ade510ad9d08cfcf808f1d77b3c68c5a9ae22ad80ba2787f94d4834b03bef65e68b86e458d584263e4853ddfb5d06e89f9

1
tests/.fmf/version Normal file
View File

@ -0,0 +1 @@
1

4
tests/provision.fmf Normal file
View File

@ -0,0 +1,4 @@
---
standard-inventory-qcow2:
qemu:
m: 4G

31
tests/run-test.sh Executable file
View File

@ -0,0 +1,31 @@
#!/bin/sh
set -eux
cd $SOURCE
git init
make bots test/common machine
# only install a subset to save time/space
mv package.json .package.json
npm install chrome-remote-interface sizzle
mv .package.json package.json
. /etc/os-release
export TEST_OS="${ID}-${VERSION_ID/./-}"
RC=0
for t in test/verify/check-{blueprint,custom,dependence,package,service,source}
do
$t \
--enable-network \
--machine 127.0.0.1:22 \
--browser 127.0.0.1:9090 \
--verbose --trace \
|| RC=$?
done
echo $RC > "$LOGS/exitcode"
cp --verbose Test* "$LOGS" || true
# deliver test result via exitcode file
exit 0

33
tests/tests.yml Normal file
View File

@ -0,0 +1,33 @@
---
- hosts: localhost
roles:
- role: standard-test-source
tags:
- always
- role: standard-test-basic
tags:
- atomic
- classic
required_packages:
- cockpit-composer
- composer-cli
- nodejs
- git
- curl
- createrepo_c
- dnf-automatic
- firewalld
- git
- libvirt-daemon-config-network
- libvirt-python3
- make
- npm
- python3
- targetcli
- tlog
tests:
- verify:
dir: .
run: ./verify.sh
save-files: ["logs/*"]

65
tests/verify.sh Executable file
View File

@ -0,0 +1,65 @@
#!/bin/sh
set -eux
source /etc/os-release
ARCH=$(uname -m)
# from standard-test-source
SOURCE="$(pwd)/source"
LOGS="$(pwd)/logs"
TESTS="$(pwd)/tests"
mkdir -p "$LOGS"
chmod a+w "$LOGS"
# This section is taken from https://github.com/osbuild/osbuild-composer/blob/main/schutzbot/mockbuild.sh
# chromium-headless is only available in EPEL for RHEL.
if [[ $ID == rhel || $ID == centos ]] && [[ ${VERSION_ID%.*} == 8 ]] && ! rpm -q epel-release; then
dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
dnf config-manager --enable epel
elif [[ $ID == rhel || $ID == centos ]] && [[ ${VERSION_ID%.*} == 9 ]]; then
dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
# replace the releasever 9 with 8 so that the epel repos can be found.
# taken from https://github.com/cockpit-project/cockpit
sed -i 's/$releasever/8/' /etc/yum.repos.d/epel*.repo
dnf config-manager --enable epel
fi
# HACK: chromium-headless ought to be enough, but greater than version 88 has a crash: https://bugs.chromium.org/p/chromium/issues/detail?id=1170634
dnf install -y chromium
# Taken from https://github.com/cockpit-project/cockpit-machines/commit/6206acd32cb125d54cb17be74afb60d45504e99f#diff-8bc7fea4b1a7acd44c6a752365847e961fa72cbb68efa39ed77ca406e9a5cac4
#HACK: unbreak rhel-9-0's default choice of 999999999 rounds, see https://bugzilla.redhat.com/show_bug.cgi?id=1993919
sed -ie 's/#SHA_CRYPT_MAX_ROUNDS 5000/SHA_CRYPT_MAX_ROUNDS 5000/' /etc/login.defs
# overriding osbuild-composer repo with nightly
mkdir -p /etc/osbuild-composer/repositories
cp $SOURCE/test/files/rhel-90.json /etc/osbuild-composer/repositories/rhel-90.json
# Make cockpit.socket and lorax-composer start
systemctl start cockpit.socket
systemctl start osbuild-composer.socket
# create user account for logging in
if ! id admin 2>/dev/null; then
useradd -c Administrator -G wheel admin
echo admin:foobar | chpasswd
fi
# create user account for running the test
if ! id runtest 2>/dev/null; then
useradd -c 'Test runner' runtest
# allow test to set up things on the machine
mkdir -p /root/.ssh
curl https://raw.githubusercontent.com/cockpit-project/bots/master/machine/identity.pub >> /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
fi
chown -R runtest "$SOURCE"
# disable core dumps, we rather investigate them upstream where test VMs are accessible
echo core > /proc/sys/kernel/core_pattern
cp -r $SOURCE/test/files /home/admin
# Run tests as unprivileged user
su - -c "env SOURCE=$SOURCE LOGS=$LOGS $TESTS/run-test.sh" runtest
RC=$(cat $LOGS/exitcode)
exit ${RC:-1}