Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

modify onboot-activate #17

Closed
wants to merge 17 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion .github/workflows/scenarios-permian.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
runs-on: [self-hosted, kstest]
strategy:
matrix:
scenario: [daily-iso, rhel8, rhel9]
scenario: [daily-iso, rhel8, rhel9, rhel10]
fail-fast: false

# these settings depend on the infrastructure; on upshift ocp-master-xxl they take about 4 hours
Expand Down Expand Up @@ -57,6 +57,8 @@ jobs:
VARIABLE="SKIP_TESTTYPES_RHEL8"
elif [ "${{ matrix.scenario }}" == "rhel9" ]; then
VARIABLE="SKIP_TESTTYPES_RHEL9"
elif [ "${{ matrix.scenario }}" == "rhel10" ]; then
VARIABLE="SKIP_TESTTYPES_RHEL10"
fi
if [ -e ${TEMPLATE} ] && [ -n ${VARIABLE} ]; then
scripts/generate-testplan.py \
Expand Down Expand Up @@ -100,6 +102,8 @@ jobs:
echo "platform=rhel8" >> $GITHUB_OUTPUT
elif [ "${{ matrix.scenario }}" == "rhel9" ]; then
echo "platform=rhel9" >> $GITHUB_OUTPUT
elif [ "${{ matrix.scenario }}" == "rhel10" ]; then
echo "platform=rhel10" >> $GITHUB_OUTPUT
else
echo "Scenario ${{ matrix.scenario }} can't be mapped to platform"
exit 1
Expand Down Expand Up @@ -133,6 +137,9 @@ jobs:
elif [ "${{ matrix.scenario }}" == "rhel9" ]; then
echo "installation_tree=http://download.eng.bos.redhat.com/rhel-9/nightly/RHEL-9/latest-RHEL-9.4.0/compose/BaseOS/x86_64/os" >> $GITHUB_OUTPUT
echo "modular_url=http://download.eng.bos.redhat.com/rhel-9/nightly/RHEL-9/latest-RHEL-9.4.0/compose/AppStream/x86_64/os" >> $GITHUB_OUTPUT
elif [ "${{ matrix.scenario }}" == "rhel10" ]; then
echo "installation_tree=http://download.eng.bos.redhat.com/rhel-10/nightly/RHEL-10-Public-Beta/latest-RHEL-10.0/compose/BaseOS/x86_64/os" >> $GITHUB_OUTPUT
echo "modular_url=http://download.eng.bos.redhat.com/rhel-10/nightly/RHEL-10-Public-Beta/latest-RHEL-10.0/compose/AppStream/x86_64/os" >> $GITHUB_OUTPUT
else
echo "Installation tree location for ${{ matrix.scenario }} not configured"
if [ -z "${{ steps.boot_iso_from_scenario.outputs.boot_iso }}" ]; then
Expand Down
345 changes: 345 additions & 0 deletions .github/workflows/test-platforms.yml

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion .github/workflows/weekly-summary.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
run: |
PATH=./scripts/:$PATH \
./scripts/weekly-summary --rebuild --flake-details \
--artifacts=logs-daily-iso,logs-rhel9,logs-rhel8 \
--artifacts=logs-daily-iso,logs-rhel9,logs-rhel8,logs-rhel10 \
--archive-logs /var/tmp/kstest-archive/

- name: Collect logs
Expand Down
5 changes: 5 additions & 0 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -368,6 +368,10 @@ PR runs do *not* auto-retry test failures. This avoids introducing unstable
tests, and PRs usually just run a few tests so that flakes are much less likely
to ruin the result.

To test a PR on all supported platforms (including rhel) there is a
`test-platforms`_ workflow running the tests on a comment in a PR.
Running it requires admin repository permissions.

Service jobs
------------
* The `container-autoupdate`_ workflow refreshes the runner container
Expand All @@ -391,5 +395,6 @@ GitHub's infrastructure and can be run manually by a developer.
.. _Travis: https://travis-ci.com/
.. _.travis.yml: ./.travis.yml
.. _container-autoupdate: ./.github/workflows/container-autoupdate.yml
.. _test-platforms: ./.github/workflows/test-platforms.yml
.. _quay.io/rhinstaller/kstest-runner: https://quay.io/repository/rhinstaller/kstest-runner
.. _daily-boot-iso: ./.github/workflows/daily-boot-iso.yml
2 changes: 2 additions & 0 deletions container.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,6 @@
# shellcheck disable=SC2034
TESTTYPE="bootloader packaging coverage skip-on-rhel"

# modify container

. ${KSTESTDIR}/functions.sh
20 changes: 20 additions & 0 deletions containers/runner/skip-testtypes
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,21 @@ common_skip_array=(

rawhide_skip_array=(
skip-on-fedora
gh576 # clearpart-4 test is flaky on all scenarios
gh595 # proxy-cmdline failing on all scenarios
gh640 # authselect-not-set failing
gh641 # packages-multilib failing on systemd conflict
gh680 # proxy-kickstart and proxy-auth failing
gh740 # fedora-live-image-build fails on comps changes
gh769 # nodejs:16 and swig:4 missing in module-X tests
gh774 # autopart-luks-1 failing
gh777 # raid-1 failing
gh910 # stage2-from-ks test needs to be fixed for daily-iso
gh890 # default-systemd-target-vnc-graphical-provides flaking too much
gh871 # basic-ftp failing due to mirror
rhbz1853668 # multipath device not constructed back after installation
gh975 # packages-default failing
gh1023 # rpm-ostree failing
)

rawhide_text_skip_array=(
Expand Down Expand Up @@ -60,6 +74,11 @@ rhel9_skip_array=(
gh970 # selinux-contexts failing
)

rhel10_skip_array=(
skip-on-rhel
skip-on-rhel-10
)

# used in workflows/daily-boot-iso-rhel8.yml
rhel8_daily_skip_array=(
skip-on-rhel
Expand All @@ -77,6 +96,7 @@ SKIP_TESTTYPES_RAWHIDE_TEXT=$(_join_args_by_comma "${common_skip_array[@]}" "${r
SKIP_TESTTYPES_DAILY_ISO=$(_join_args_by_comma "${common_skip_array[@]}" "${daily_iso_skip_array[@]}")
SKIP_TESTTYPES_RHEL8=$(_join_args_by_comma "${common_skip_array[@]}" "${rhel8_skip_array[@]}")
SKIP_TESTTYPES_RHEL9=$(_join_args_by_comma "${common_skip_array[@]}" "${rhel9_skip_array[@]}")
SKIP_TESTTYPES_RHEL10=$(_join_args_by_comma "${common_skip_array[@]}" "${rhel10_skip_array[@]}")
SKIP_TESTTYPES_RHEL8_DAILY=$(_join_args_by_comma "${common_skip_array[@]}" "${rhel8_daily_skip_array[@]}")
# Tests run on an anaconda pull request by comment
SKIP_TESTTYPES_ANACONDA_PR=$(_join_args_by_comma "${common_skip_array[@]}")
3 changes: 3 additions & 0 deletions fragments/platform/rhel10/payload/default_packages.ks
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Default RHEL10 packages section (empty)
%packages
%end
1 change: 1 addition & 0 deletions fragments/platform/rhel10/payload/ostreecontainer.ks
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ostreecontainer --no-signature-verification --transport=registry --url=quay.io/centos-bootc/centos-bootc:stream10
7 changes: 7 additions & 0 deletions fragments/platform/rhel10/payload/unified_packages.ks
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# RHEL 10 packages section from unified DVD.
# The unified DVD should contain under one link both BaseOS and AppStream so install AppStream specific package.

%packages
# Anaconda package is part of the AppStream repository. It is not contained in the BaseOS.
anaconda
%end
3 changes: 3 additions & 0 deletions fragments/platform/rhel10/repos/default.ks
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Default RHEL10 repositories - BeseOS + AppStream or unified repo can be used
url --url @KSTEST_URL@
repo --name=appstream --baseurl @KSTEST_MODULAR_URL@
2 changes: 2 additions & 0 deletions fragments/platform/rhel10/repos/unified-nfs.ks
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Unified ISO for RHEL-10 served on NFS server
nfs --server NFS_SERVER --dir NFS_DIR
3 changes: 3 additions & 0 deletions fragments/platform/rhel10/repos/unified.ks
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Unified ISO for RHEL 10 served on http server
# BaseOS and AppStream repositories should be loaded automatically from the unified repo
url RHEL10_UNIFIED_REPO_URL_GOES_HERE
3 changes: 3 additions & 0 deletions fragments/platform/rhel10/section-data/hello-world.ks
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Create a variable in the %pre section with a link to the archived repository of Hello Word.
# The curl tool will download this archive and unpack it in the system.
ADDON_SOURCE="https://github.com/rhinstaller/hello-world-anaconda-addon/archive/master.tar.gz"
7 changes: 7 additions & 0 deletions fragments/platform/rhel10/section-data/server-dvd-link.ks
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Create a variable in the pre/post section with link to a RHEL DVD.
# The curl tool will download this ISO and it will be processed later in the section.
_LINK=<ADD_LINK_TO_RHEL-10_ISO_HERE>
ISO_LOCATION="$(curl -L $_LINK | grep -Po "RHEL-10.*?-x86_64-dvd1.iso" | head -n 1)"
ISO_LOCATION="${_LINK}/${ISO_LOCATION}"

echo $ISO_LOCATION
3 changes: 3 additions & 0 deletions fragments/platform/rhel10/section-data/unified-iso.ks
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Create a variable in the pre/post section with link to a RHEL-10 unified ISO
# The curl tool will download this ISO and it will be processed later in the section.
ISO_LOCATION=<link to a unified ISO>
5 changes: 5 additions & 0 deletions fragments/platform/rhel10/timezone/ntp_disabled.ks
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Set up the timezone.
timezone --utc Europe/Prague

# Disable NTP.
timesource --ntp-disable
5 changes: 5 additions & 0 deletions fragments/platform/rhel10/timezone/ntp_enabled.ks
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Set up the timezone.
timezone --utc Europe/Prague

# Enable NTP.
timesource --ntp-server ntp.cesnet.cz
6 changes: 6 additions & 0 deletions fragments/platform/rhel10/validation/unified.ks
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Validate installed packages on RHEL 10 system.

# Check that the anaconda package was correctly installed.
if ! rpm -q anaconda ; then
echo '*** anaconda package was not installed!' >> /root/RESULT
fi
2 changes: 2 additions & 0 deletions lang.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@
#
# Red Hat Author(s): Chris Lumens <[email protected]>

# modified on master

# Ignore unused variable parsed out by tooling scripts as test tags metadata
# shellcheck disable=SC2034
TESTTYPE="language i18n coverage"
Expand Down
1 change: 1 addition & 0 deletions onboot-activate.sh
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ TESTTYPE="network coverage"

. ${KSTESTDIR}/functions.sh

# modify

kernel_args() {
echo ${DEFAULT_BOOTOPTS} ip=${KSTEST_NETDEV1}:dhcp
Expand Down
6 changes: 6 additions & 0 deletions scripts/defaults-rhel10.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Default settings for testing RHEL 10. This requires being inside the Red Hat VPN.

source network-device-names.cfg
export KSTEST_URL='http://download.eng.bos.redhat.com/rhel-10/nightly/RHEL-10-Public-Beta/latest-RHEL-10.0/compose/BaseOS/x86_64/os/'
export KSTEST_MODULAR_URL='http://download.eng.bos.redhat.com/rhel-10/nightly/RHEL-10-Public-Beta/latest-RHEL-10.0/compose/AppStream/x86_64/os/'
export KSTEST_FTP_URL='ftp://ftp.tu-chemnitz.de/pub/linux/fedora/linux/development/rawhide/Everything/$basearch/os/'
3 changes: 3 additions & 0 deletions scripts/generate-permian-query.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@ def parse_args():
+ " or ".join(['tc.name == "{}"'.format(test) for test in args.tests])
+ ")"
]
if args.skip_testtypes:
skiptypes = ','.join(itertools.chain(*args.skip_testtypes)).split(',')
conditions.extend(['"{}" not in tc.tags'.format(skiptype) for skiptype in skiptypes])
else:
if args.testtype:
conditions.extend(['"{}" in tc.tags'.format(args.testtype), '"knownfailure" not in tc.tags'])
Expand Down
3 changes: 3 additions & 0 deletions scripts/launcher/lib/log_monitor/log_handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,9 @@ class VirtualLogRequestHandler(LogRequestHandler):
# Team networking is deprecated
"CRIT kernel:Warning: Deprecated Driver is detected: team ",

# qla4xxx driver is deprecated (gh#1077)
"CRIT kernel:Warning: Deprecated Driver is detected: qla4xxx ",

# Ignore a call trace during debugging.
# Ignoring permanently for gh768.
# https://github.com/rhinstaller/kickstart-tests/issues/768
Expand Down
2 changes: 1 addition & 1 deletion scripts/weekly-summary
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ URL = "https://api.github.com/repos/rhinstaller/kickstart-tests/actions/artifact

# Defaults list of artifacts
# For now use the full log artifacts, eventually this will be the json summaries
ARTIFACT_NAMES = ["logs-daily-iso", "logs-rhel9", "logs-rhel8"]
ARTIFACT_NAMES = ["logs-daily-iso", "logs-rhel9", "logs-rhel8", "logs-rhel10"]

# We should ignore SIGPIPE when using pycurl.NOSIGNAL - see
# the libcurl tutorial for more info.
Expand Down
15 changes: 15 additions & 0 deletions testlib/test_plans/daily-rhel10.plan.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: daily rhel10
description: Daily run on a RHEL 10 compose
point_person: [email protected]
artifact_type: github.scheduled.daily.kstest.rhel10
verified_by:
test_cases:
query: '
{% for tag in skiptags %}
"{{ tag }}" not in tc.tags and
{% endfor %}
True'
configurations:
- architecture: x86_64
reporting:
- type: xunit
2 changes: 1 addition & 1 deletion testlib/test_plans/daily-rhel8.plan.yaml.j2
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: daily rhel8
description: Daily run on current RHEL 8 development compose
description: Daily run on a RHEL 8 compose
point_person: [email protected]
artifact_type: github.scheduled.daily.kstest.rhel8
verified_by:
Expand Down
2 changes: 1 addition & 1 deletion testlib/test_plans/daily-rhel9.plan.yaml.j2
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: daily rhel9
description: Daily run on current RHEL 9 development compose
description: Daily run on a RHEL 9 compose
point_person: [email protected]
artifact_type: github.scheduled.daily.kstest.rhel9
verified_by:
Expand Down