Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package openQA for openSUSE:Factory checked in at 2026-05-07 15:45:54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/openQA (Old) and /work/SRC/openSUSE:Factory/.openQA.new.1966 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openQA" Thu May 7 15:45:54 2026 rev:845 rq:1351390 version:5.1778134320.e889287c Changes: -------- --- /work/SRC/openSUSE:Factory/openQA/openQA.changes 2026-05-06 19:19:37.881371989 +0200 +++ /work/SRC/openSUSE:Factory/.openQA.new.1966/openQA.changes 2026-05-07 15:47:30.389357879 +0200 @@ -1,0 +2,18 @@ +Thu May 07 06:12:10 UTC 2026 - [email protected] + +- Update to version 5.1778134320.e889287c: + * test: simplify postgres healthcheck in docker-compose + * fix: correctly handle MOJO_CLIENT_DEBUG in Helm chart + * test: add yamale and yamllint to test_helm_chart dependencies + * test: fail early in test_helm_chart if dependencies are missing + * test: use isolated environment for helm chart tests + * test: serialize helm chart test execution + * refactor: Remove superfluous line in script usage + * style: Enforce perlcritic policy Subroutines::RequireArgUnpacking + * fix: ktap: ignore selftest status comments + * fix(apparmor): allow write to /dev/tty necessary for Leap 16 + * chore(spec): Exclude devel sub package from builds for Leap < 16 + * ci: Ensure all required dependencies are part of the devel container + * fix(apparmor): allow further paths for 16.x + +------------------------------------------------------------------- Old: ---- openQA-5.1777995277.b985bea2.obscpio New: ---- openQA-5.1778134320.e889287c.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ openQA-client-test.spec ++++++ --- /var/tmp/diff_new_pack.nsIDyK/_old 2026-05-07 15:47:31.773414684 +0200 +++ /var/tmp/diff_new_pack.nsIDyK/_new 2026-05-07 15:47:31.777414848 +0200 @@ -18,7 +18,7 @@ %define short_name openQA-client Name: %{short_name}-test -Version: 5.1777995277.b985bea2 +Version: 5.1778134320.e889287c Release: 0 Summary: Test package for %{short_name} License: GPL-2.0-or-later ++++++ openQA-devel-test.spec ++++++ --- /var/tmp/diff_new_pack.nsIDyK/_old 2026-05-07 15:47:31.817416490 +0200 +++ /var/tmp/diff_new_pack.nsIDyK/_new 2026-05-07 15:47:31.821416654 +0200 @@ -18,7 +18,7 @@ %define short_name openQA-devel Name: %{short_name}-test -Version: 5.1777995277.b985bea2 +Version: 5.1778134320.e889287c Release: 0 Summary: Test package for %{short_name} License: GPL-2.0-or-later ++++++ openQA-test.spec ++++++ --- /var/tmp/diff_new_pack.nsIDyK/_old 2026-05-07 15:47:31.857418132 +0200 +++ /var/tmp/diff_new_pack.nsIDyK/_new 2026-05-07 15:47:31.861418295 +0200 @@ -18,7 +18,7 @@ %define short_name openQA Name: %{short_name}-test -Version: 5.1777995277.b985bea2 +Version: 5.1778134320.e889287c Release: 0 Summary: Test package for openQA License: GPL-2.0-or-later ++++++ openQA-worker-test.spec ++++++ --- /var/tmp/diff_new_pack.nsIDyK/_old 2026-05-07 15:47:31.901419937 +0200 +++ /var/tmp/diff_new_pack.nsIDyK/_new 2026-05-07 15:47:31.901419937 +0200 @@ -18,7 +18,7 @@ %define short_name openQA-worker Name: %{short_name}-test -Version: 5.1777995277.b985bea2 +Version: 5.1778134320.e889287c Release: 0 Summary: Test package for %{short_name} License: GPL-2.0-or-later ++++++ openQA.spec ++++++ --- /var/tmp/diff_new_pack.nsIDyK/_old 2026-05-07 15:47:31.937421415 +0200 +++ /var/tmp/diff_new_pack.nsIDyK/_new 2026-05-07 15:47:31.941421579 +0200 @@ -47,7 +47,12 @@ %bcond_with devel_package %bcond_with munin_package %else +# exclude devel sub package on Leap < 16 as not all develoment dependencies are present anymore +%if 0%{?is_opensuse} && 0%{?suse_version} < 1600 +%bcond_with devel_package +%else %bcond_without devel_package +%endif %bcond_without munin_package %endif # runtime requirements that also the testsuite needs @@ -90,16 +95,16 @@ %define qemu qemu %endif # The following line is generated from dependencies.yaml -%define style_check_requires ShellCheck pandoc perl(Code::TidyAll) perl(Perl::Critic) perl(Perl::Critic::Community) perl(Pod::Markdown) perl(Test::Perl::Critic) python3-gitlint python3-yamllint shfmt +%define style_check_requires ShellCheck perl(Code::TidyAll) perl(Perl::Critic) perl(Perl::Critic::Community) perl(Pod::Markdown) perl(Test::Perl::Critic) python3-gitlint python3-yamllint shfmt # The following line is generated from dependencies.yaml %define cover_requires perl(Devel::Cover) perl(Devel::Cover::Report::Codecovbash) # The following line is generated from dependencies.yaml -%define devel_no_selenium_requires %build_requires %cover_requires %qemu %style_check_requires %test_requires curl make perl(Perl::Tidy) perl(Test::CheckGitStatus) postgresql-devel rsync sudo tar xorg-x11-fonts +%define devel_no_selenium_requires %build_requires %cover_requires %qemu %style_check_requires %test_requires curl make pandoc perl(Perl::Tidy) perl(TAP::Harness::JUnit) perl(Test::CheckGitStatus) postgresql-devel python3-weasyprint rsync sudo tar xorg-x11-fonts # The following line is generated from dependencies.yaml %define devel_requires %devel_no_selenium_requires chromedriver Name: openQA -Version: 5.1777995277.b985bea2 +Version: 5.1778134320.e889287c Release: 0 Summary: The openQA web-frontend, scheduler and tools License: GPL-2.0-or-later ++++++ openQA-5.1777995277.b985bea2.obscpio -> openQA-5.1778134320.e889287c.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/.mergify.yml new/openQA-5.1778134320.e889287c/.mergify.yml --- old/openQA-5.1777995277.b985bea2/.mergify.yml 2026-05-05 17:34:37.000000000 +0200 +++ new/openQA-5.1778134320.e889287c/.mergify.yml 2026-05-07 08:12:00.000000000 +0200 @@ -13,7 +13,7 @@ # "unresolvable" is not reported in general: # https://trello.com/c/0N3jHq5M/2257-report-back-to-scm-when-build-results-arent-failed-and-succeeded # So we need to require the number of tests explicitly: - - "#check-success>=47" + - "#check-success>=45" - status-success=static-check-containers - status-success=webui-docker-compose - "#check-failure=0" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/.perlcriticrc new/openQA-5.1778134320.e889287c/.perlcriticrc --- old/openQA-5.1777995277.b985bea2/.perlcriticrc 2026-05-05 17:34:37.000000000 +0200 +++ new/openQA-5.1778134320.e889287c/.perlcriticrc 2026-05-07 08:12:00.000000000 +0200 @@ -1,6 +1,6 @@ theme = community + openqa severity = 4 -include = strict ValuesAndExpressions::ProhibitInterpolationOfLiterals CodeLayout::ProhibitParensWithBuiltins BuiltinFunctions::RequireBlockMap BuiltinFunctions::ProhibitStringySplit ControlStructures::ProhibitNegativeExpressionsInUnlessAndUntilConditions ValuesAndExpressions::RequireQuotedHeredocTerminator Variables::ProhibitUnusedVariables ValuesAndExpressions::RequireNumberSeparators CodeLayout::ProhibitQuotedWordLists RegularExpressions::ProhibitSingleCharAlternation BuiltinFunctions::RequireBlockGrep RegularExpressions::ProhibitUselessTopic Variables::ProtectPrivateVars +include = strict ValuesAndExpressions::ProhibitInterpolationOfLiterals CodeLayout::ProhibitParensWithBuiltins BuiltinFunctions::RequireBlockMap BuiltinFunctions::ProhibitStringySplit ControlStructures::ProhibitNegativeExpressionsInUnlessAndUntilConditions ValuesAndExpressions::RequireQuotedHeredocTerminator Variables::ProhibitUnusedVariables ValuesAndExpressions::RequireNumberSeparators CodeLayout::ProhibitQuotedWordLists RegularExpressions::ProhibitSingleCharAlternation BuiltinFunctions::RequireBlockGrep RegularExpressions::ProhibitUselessTopic Variables::ProtectPrivateVars Subroutines::RequireArgUnpacking # ControlStructures::ProhibitNegativeExpressionsInUnlessAndUntilConditions # No operators like < =~ ! allowed in 'unless' or 'until', only simple diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/Makefile new/openQA-5.1778134320.e889287c/Makefile --- old/openQA-5.1777995277.b985bea2/Makefile 2026-05-05 17:34:37.000000000 +0200 +++ new/openQA-5.1778134320.e889287c/Makefile 2026-05-07 08:12:00.000000000 +0200 @@ -446,7 +446,7 @@ tools/test_helm_chart lint .PHONY: test-helm-install -test-helm-install: ## Install helm chart for testing +test-helm-install: test-helm-lint ## Install helm chart for testing RETRY=${RETRY} timeout --foreground -s SIGINT -k 5 -v ${TIMEOUT_RETRIES} tools/retry tools/test_helm_chart install .PHONY: update-deps diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/container/devel/Dockerfile new/openQA-5.1778134320.e889287c/container/devel/Dockerfile --- old/openQA-5.1777995277.b985bea2/container/devel/Dockerfile 2026-05-05 17:34:37.000000000 +0200 +++ new/openQA-5.1778134320.e889287c/container/devel/Dockerfile 2026-05-07 08:12:00.000000000 +0200 @@ -20,7 +20,7 @@ # endlabelprefix # hadolint ignore=DL3037 -RUN zypper in -y os-autoinst-devel openQA-devel vim nodejs-default git mc perl-Devel-REPL perl-Term-ReadKey && \ +RUN zypper in -y os-autoinst-devel openQA-devel vim nodejs-default git mc perl-Devel-REPL perl-Term-ReadKey perl-TAP-Harness-JUnit && \ zypper clean -a ENV OPENQA_DIR=/opt/openqa diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/container/helm/openqa/templates/deployment.yaml new/openQA-5.1778134320.e889287c/container/helm/openqa/templates/deployment.yaml --- old/openQA-5.1777995277.b985bea2/container/helm/openqa/templates/deployment.yaml 2026-05-05 17:34:37.000000000 +0200 +++ new/openQA-5.1778134320.e889287c/container/helm/openqa/templates/deployment.yaml 2026-05-07 08:12:00.000000000 +0200 @@ -122,7 +122,7 @@ - name: MOJO_LISTEN value: "http://0.0.0.0:9526" - name: MOJO_CLIENT_DEBUG - value: ${MOJO_CLIENT_DEBUG} + value: {{ .Values.mojoClientDebug | quote }} ports: - containerPort: 9526 readinessProbe: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/container/helm/openqa/values.yaml new/openQA-5.1778134320.e889287c/container/helm/openqa/values.yaml --- old/openQA-5.1777995277.b985bea2/container/helm/openqa/values.yaml 2026-05-05 17:34:37.000000000 +0200 +++ new/openQA-5.1778134320.e889287c/container/helm/openqa/values.yaml 2026-05-07 08:12:00.000000000 +0200 @@ -3,6 +3,7 @@ useHttps: false key: 1234567890ABCDEF secret: 1234567890ABCDEF +mojoClientDebug: "0" image: name: registry.opensuse.org/devel/openqa/containers16.0/openqa_webui pullPolicy: Always diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/container/webui/docker-compose.yaml new/openQA-5.1778134320.e889287c/container/webui/docker-compose.yaml --- old/openQA-5.1777995277.b985bea2/container/webui/docker-compose.yaml 2026-05-05 17:34:37.000000000 +0200 +++ new/openQA-5.1778134320.e889287c/container/webui/docker-compose.yaml 2026-05-07 08:12:00.000000000 +0200 @@ -115,6 +115,9 @@ environment: MODE: "webui" MOJO_LISTEN: "http://0.0.0.0:9526" + depends_on: + db: + condition: service_healthy entrypoint: "sh -c 'chmod -R a+rwX /data/{factory,images,testresults}; /root/run_openqa.sh'" healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9526/login"] @@ -133,12 +136,7 @@ volumes: - ./workdir/db:/var/lib/postgresql:Z healthcheck: - test: - - CMD-SHELL - - >- - pg_isready -U openqa -d openqa - && echo 'select * from api_keys;' - | psql -U openqa -v 'ON_ERROR_STOP=1' openqa + test: ["CMD-SHELL", "pg_isready -U openqa -d openqa"] interval: 10s timeout: 10s retries: 3 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/cpanfile new/openQA-5.1778134320.e889287c/cpanfile --- old/openQA-5.1777995277.b985bea2/cpanfile 2026-05-05 17:34:37.000000000 +0200 +++ new/openQA-5.1778134320.e889287c/cpanfile 2026-05-07 08:12:00.000000000 +0200 @@ -121,6 +121,7 @@ requires 'Perl::Critic::Community'; requires 'Perl::Tidy', '== 20260204.0.0'; requires 'Pod::Markdown'; + requires 'TAP::Harness::JUnit'; requires 'Test::CheckGitStatus'; requires 'Test::Perl::Critic'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/dependencies.yaml new/openQA-5.1778134320.e889287c/dependencies.yaml --- old/openQA-5.1777995277.b985bea2/dependencies.yaml 2026-05-05 17:34:37.000000000 +0200 +++ new/openQA-5.1778134320.e889287c/dependencies.yaml 2026-05-07 08:12:00.000000000 +0200 @@ -85,8 +85,11 @@ sudo: tar: xorg-x11-fonts: + pandoc: # for generating HTML documentation + python3-weasyprint: # for generating PDF documentation perl(Perl::Tidy): '== 20260204.0.0' perl(Test::CheckGitStatus): + perl(TAP::Harness::JUnit): # for JUnit-compatible test results devel_requires: '%devel_no_selenium_requires': @@ -217,7 +220,6 @@ perl(Perl::Critic::Community): perl(Code::TidyAll): perl(Pod::Markdown): - pandoc: ShellCheck: shfmt: python3-gitlint: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/dist/rpm/openQA.spec new/openQA-5.1778134320.e889287c/dist/rpm/openQA.spec --- old/openQA-5.1777995277.b985bea2/dist/rpm/openQA.spec 2026-05-05 17:34:37.000000000 +0200 +++ new/openQA-5.1778134320.e889287c/dist/rpm/openQA.spec 2026-05-07 08:12:00.000000000 +0200 @@ -47,7 +47,12 @@ %bcond_with devel_package %bcond_with munin_package %else +# exclude devel sub package on Leap < 16 as not all develoment dependencies are present anymore +%if 0%{?is_opensuse} && 0%{?suse_version} < 1600 +%bcond_with devel_package +%else %bcond_without devel_package +%endif %bcond_without munin_package %endif # runtime requirements that also the testsuite needs @@ -90,11 +95,11 @@ %define qemu qemu %endif # The following line is generated from dependencies.yaml -%define style_check_requires ShellCheck pandoc perl(Code::TidyAll) perl(Perl::Critic) perl(Perl::Critic::Community) perl(Pod::Markdown) perl(Test::Perl::Critic) python3-gitlint python3-yamllint shfmt +%define style_check_requires ShellCheck perl(Code::TidyAll) perl(Perl::Critic) perl(Perl::Critic::Community) perl(Pod::Markdown) perl(Test::Perl::Critic) python3-gitlint python3-yamllint shfmt # The following line is generated from dependencies.yaml %define cover_requires perl(Devel::Cover) perl(Devel::Cover::Report::Codecovbash) # The following line is generated from dependencies.yaml -%define devel_no_selenium_requires %build_requires %cover_requires %qemu %style_check_requires %test_requires curl make perl(Perl::Tidy) perl(Test::CheckGitStatus) postgresql-devel rsync sudo tar xorg-x11-fonts +%define devel_no_selenium_requires %build_requires %cover_requires %qemu %style_check_requires %test_requires curl make pandoc perl(Perl::Tidy) perl(TAP::Harness::JUnit) perl(Test::CheckGitStatus) postgresql-devel python3-weasyprint rsync sudo tar xorg-x11-fonts # The following line is generated from dependencies.yaml %define devel_requires %devel_no_selenium_requires chromedriver diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/lib/OpenQA/Parser/Format/KTAP.pm new/openQA-5.1778134320.e889287c/lib/OpenQA/Parser/Format/KTAP.pm --- old/openQA-5.1777995277.b985bea2/lib/OpenQA/Parser/Format/KTAP.pm 2026-05-05 17:34:37.000000000 +0200 +++ new/openQA-5.1778134320.e889287c/lib/OpenQA/Parser/Format/KTAP.pm 2026-05-07 08:12:00.000000000 +0200 @@ -9,6 +9,14 @@ use OpenQA::Parser::Result::OpenQA; use TAP::Parser; +# Matches a selftests group header comment, e.g. "# selftests: cgroup: test_core". +# The negative lookahead rejects inner status comments like "# selftests: test [PASS]". +use constant SELFTESTS_GROUP_COMMENT_RE => qr/^#\s*selftests:\s+(?!.*\[[A-Z]+\]\s*$)[^:]+:\s+(.*\S)\s*$/; + +# Matches the description field of a TAP test-type summary line, +# e.g. "selftests: cgroup: test_core" (no leading "# "). +use constant SELFTESTS_GROUP_SUMMARY_RE => qr/^selftests:\s+[^:]+:\s+.*\S\s*$/; + has [qw(test)]; has state => sub { return {steps => undef, m => 0} }; @@ -21,8 +29,8 @@ $self->generated_tests_results->add(OpenQA::Parser::Result::OpenQA->new($steps)); } - my ($group_name) = $line =~ /^#\s*selftests:\s+(.*)/; - my $sanitized_group_name = "selftests: $group_name"; + my ($group_name) = $line =~ SELFTESTS_GROUP_COMMENT_RE; + my $sanitized_group_name = $group_name; $sanitized_group_name =~ s/[\/.]/_/g; $sanitized_group_name =~ s/\s//g; @@ -130,14 +138,14 @@ next if $result->type eq 'version' || $result->type eq 'plan'; if ($result->type eq 'comment') { - if ($result->as_string =~ /^#\s*selftests:\s+/) { + if ($result->as_string =~ SELFTESTS_GROUP_COMMENT_RE) { $self->_testgroup_init($result->as_string); next; } $self->_parse_subtest($result); next; } - if ($result->type eq 'test' && $result->description =~ /^selftests: /) { + if ($result->type eq 'test' && $result->description =~ SELFTESTS_GROUP_SUMMARY_RE) { $self->_testgroup_finalize($result); next; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/profiles/apparmor.d/usr.share.openqa.script.openqa new/openQA-5.1778134320.e889287c/profiles/apparmor.d/usr.share.openqa.script.openqa --- old/openQA-5.1777995277.b985bea2/profiles/apparmor.d/usr.share.openqa.script.openqa 2026-05-05 17:34:37.000000000 +0200 +++ new/openQA-5.1778134320.e889287c/profiles/apparmor.d/usr.share.openqa.script.openqa 2026-05-07 08:12:00.000000000 +0200 @@ -8,6 +8,7 @@ #include <abstractions/nameservice> #include <abstractions/perl> + /dev/tty rw, /etc/gitconfig r, /etc/openqa/client.conf r, /etc/openqa/client.conf.d/ r, @@ -109,6 +110,7 @@ #include <abstractions/nameservice> /{usr/,}etc/ssh/ssh_config r, + /{usr/,}etc/ssh/ssh_config.d/ r, /{usr/,}etc/ssh/ssh_config.d/** r, /etc/ssh/ssh_known_hosts r, /etc/ssl/openssl.cnf r, @@ -134,6 +136,7 @@ /opt/openqa-trigger-from-obs/*:*/*products* rw, /opt/openqa-trigger-from-obs/*:*/*/*products* rw, + /opt/os-autoinst-scripts/ r, /opt/os-autoinst-scripts/** rix, /usr/share/openqa/script/openqa-cli px, /usr/share/openqa/script/openqa-clone-job mrix, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/script/create_admin new/openQA-5.1778134320.e889287c/script/create_admin --- old/openQA-5.1777995277.b985bea2/script/create_admin 2026-05-05 17:34:37.000000000 +0200 +++ new/openQA-5.1778134320.e889287c/script/create_admin 2026-05-07 08:12:00.000000000 +0200 @@ -4,8 +4,7 @@ # Copyright 2015-2020 SUSE LLC # SPDX-License-Identifier: GPL-2.0-or-later -use strict; -use warnings; +use Mojo::Base -signatures; use FindBin qw($RealBin); use lib "$RealBin/../lib"; @@ -23,7 +22,7 @@ my $user = $ARGV[0]; my $help; -sub usage { +sub usage ($rc) { print "Usage: $0 user [options]\n\n"; print " --email : Email address.\n"; print " --nickname : Nickname.\n"; @@ -31,8 +30,7 @@ print " --key : API key (will be randomly generated if not set).\n"; print " --secret : API secret (will be randomly generated if not set).\n"; print " user : User ID (e.g. OpenID URL).\n"; - print "usage: $_[0]\n"; - exit $_[0]; + exit $rc; } # need to count this *before* calling GetOptions diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/script/initdb new/openQA-5.1778134320.e889287c/script/initdb --- old/openQA-5.1777995277.b985bea2/script/initdb 2026-05-05 17:34:37.000000000 +0200 +++ new/openQA-5.1778134320.e889287c/script/initdb 2026-05-07 08:12:00.000000000 +0200 @@ -3,11 +3,10 @@ # Copyright 2014-2021 SUSE LLC # SPDX-License-Identifier: GPL-2.0-or-later +use Mojo::Base -signatures; use FindBin qw($RealBin); use lib "$RealBin/../lib"; -use strict; -use warnings; use DBIx::Class::DeploymentHandler; use File::Basename qw(dirname); use OpenQA::Schema; @@ -31,7 +30,7 @@ 'dir=s' => \$script_directory, ); -sub usage { +sub usage ($rc) { print "Usage: $0 [flags]\n\n"; print " --prepare_init : Create the deployment files used to initialize the database.\n"; print " Don't forget to increase the version before using this\n"; @@ -45,7 +44,7 @@ print " --dir=directory : Create deployment and migration scripts in this directory.\n"; print " Default is '$default_script_directory'\n"; print " --help : This help message.\n"; - exit $_[0]; + exit $rc; } usage 0 if $help; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/script/upgradedb new/openQA-5.1778134320.e889287c/script/upgradedb --- old/openQA-5.1777995277.b985bea2/script/upgradedb 2026-05-05 17:34:37.000000000 +0200 +++ new/openQA-5.1778134320.e889287c/script/upgradedb 2026-05-07 08:12:00.000000000 +0200 @@ -3,11 +3,10 @@ # Copyright 2014-2021 SUSE LLC # SPDX-License-Identifier: GPL-2.0-or-later +use Mojo::Base -signatures; use FindBin qw($RealBin); use lib "$RealBin/../lib"; -use strict; -use warnings; use aliased 'DBIx::Class::DeploymentHandler' => 'DH'; use OpenQA::Schema; use Getopt::Long; @@ -31,7 +30,7 @@ 'force' => \$force ); -sub usage { +sub usage ($rc) { print "Usage: $0 [flags]\n\n"; print " --prepare_upgrades : Create the deployment files used to upgrade the database.\n"; print " Don't forget to increase the version before using this\n"; @@ -43,7 +42,7 @@ print " --dir=directory : Create deployment and migration scripts in this directory.\n"; print " Default is '$default_script_directory'\n"; print " --help : This help message.\n"; - exit $_[0]; + exit $rc; } usage 0 if $help; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/script/worker new/openQA-5.1778134320.e889287c/script/worker --- old/openQA-5.1777995277.b985bea2/script/worker 2026-05-05 17:34:37.000000000 +0200 +++ new/openQA-5.1778134320.e889287c/script/worker 2026-05-07 08:12:00.000000000 +0200 @@ -114,7 +114,7 @@ my $worker = OpenQA::Worker->new(\%options); $worker->log_setup_info(); -sub catch_exit { $worker->handle_signal(@_) } # uncoverable statement +sub catch_exit (@args) { $worker->handle_signal(@args) } # uncoverable statement $SIG{HUP} = \*catch_exit; $SIG{TERM} = \*catch_exit; $SIG{INT} = \*catch_exit; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/t/04-scheduler.t new/openQA-5.1778134320.e889287c/t/04-scheduler.t --- old/openQA-5.1777995277.b985bea2/t/04-scheduler.t 2026-05-05 17:34:37.000000000 +0200 +++ new/openQA-5.1778134320.e889287c/t/04-scheduler.t 2026-05-07 08:12:00.000000000 +0200 @@ -82,8 +82,8 @@ is $awake, 2, 'scheduler has been woken up again'; }; -sub list_jobs { - [map { $_->to_hash(assets => 1) } $jobs->complex_query(@_)->all] +sub list_jobs (@args) { + [map { $_->to_hash(assets => 1) } $jobs->complex_query(@args)->all] } sub job_get { $jobs->find({id => shift}) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/t/05-scheduler-cancel.t new/openQA-5.1778134320.e889287c/t/05-scheduler-cancel.t --- old/openQA-5.1777995277.b985bea2/t/05-scheduler-cancel.t 2026-05-05 17:34:37.000000000 +0200 +++ new/openQA-5.1778134320.e889287c/t/05-scheduler-cancel.t 2026-05-07 08:12:00.000000000 +0200 @@ -3,6 +3,7 @@ # SPDX-License-Identifier: GPL-2.0-or-later use Test::Most; +use Mojo::Base -signatures; use FindBin; use lib "$FindBin::Bin/lib", "$FindBin::Bin/../external/os-autoinst-common/lib"; @@ -183,8 +184,8 @@ ARCH => 'x86_64', ); -sub _job_create { - my $job = $schema->resultset('Jobs')->create_from_settings(@_); +sub _job_create (@args) { + my $job = $schema->resultset('Jobs')->create_from_settings(@args); # reload all values from database so we can check against default values $job->discard_changes; return $job; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/t/05-scheduler-capabilities.t new/openQA-5.1778134320.e889287c/t/05-scheduler-capabilities.t --- old/openQA-5.1777995277.b985bea2/t/05-scheduler-capabilities.t 2026-05-05 17:34:37.000000000 +0200 +++ new/openQA-5.1778134320.e889287c/t/05-scheduler-capabilities.t 2026-05-07 08:12:00.000000000 +0200 @@ -3,6 +3,7 @@ # SPDX-License-Identifier: GPL-2.0-or-later use Test::Most; +use Mojo::Base -signatures; use FindBin; use lib "$FindBin::Bin/lib", "$FindBin::Bin/../external/os-autoinst-common/lib"; @@ -132,9 +133,7 @@ $settingsJ{TEST} = 'J'; $settingsJ{WORKER_CLASS} = 'qemu_x86_64'; -sub job_create { - return $schema->resultset('Jobs')->create_from_settings(@_); -} +sub job_create (@args) { $schema->resultset('Jobs')->create_from_settings(@args) } my $jobA = job_create(\%settingsA); my $jobB = job_create(\%settingsB); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/t/10-jobs-results.t new/openQA-5.1778134320.e889287c/t/10-jobs-results.t --- old/openQA-5.1777995277.b985bea2/t/10-jobs-results.t 2026-05-05 17:34:37.000000000 +0200 +++ new/openQA-5.1778134320.e889287c/t/10-jobs-results.t 2026-05-07 08:12:00.000000000 +0200 @@ -32,8 +32,8 @@ ARCH => 'x86_64', ); -sub _job_create { - my $job = $jobs->create_from_settings(@_); +sub _job_create (@args) { + my $job = $jobs->create_from_settings(@args); # reload all values from database so we can check against default values $job->discard_changes; return $job; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/t/10-jobs.t new/openQA-5.1778134320.e889287c/t/10-jobs.t --- old/openQA-5.1777995277.b985bea2/t/10-jobs.t 2026-05-05 17:34:37.000000000 +0200 +++ new/openQA-5.1778134320.e889287c/t/10-jobs.t 2026-05-07 08:12:00.000000000 +0200 @@ -68,8 +68,8 @@ ARCH => 'x86_64', ); -sub _job_create { - my $job = $jobs->create_from_settings(@_); +sub _job_create (@args) { + my $job = $jobs->create_from_settings(@args); # reload all values from database so we can check against default values $job->discard_changes; return $job; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/t/16-utils-runcmd.t new/openQA-5.1778134320.e889287c/t/16-utils-runcmd.t --- old/openQA-5.1777995277.b985bea2/t/16-utils-runcmd.t 2026-05-05 17:34:37.000000000 +0200 +++ new/openQA-5.1778134320.e889287c/t/16-utils-runcmd.t 2026-05-07 08:12:00.000000000 +0200 @@ -281,9 +281,9 @@ package Test::FakeMinionJob { sub finish { } - sub fail { + sub fail (@args) { # uncoverable statement Test::Most::fail 'Minion job should not have failed.'; # uncoverable statement - Test::Most::note Data::Dumper::Dumper(\@_); # uncoverable statement + Test::Most::note Data::Dumper::Dumper(\@args); # uncoverable statement } } # uncoverable statement diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/t/24-worker-jobs.t new/openQA-5.1778134320.e889287c/t/24-worker-jobs.t --- old/openQA-5.1777995277.b985bea2/t/24-worker-jobs.t 2026-05-05 17:34:37.000000000 +0200 +++ new/openQA-5.1778134320.e889287c/t/24-worker-jobs.t 2026-05-07 08:12:00.000000000 +0200 @@ -127,7 +127,7 @@ Mojo::IOLoop->next_tick(sub { $args{callback}->(\%cb_args) }) if $args{callback} && $args{callback} ne 'no'; } sub reset_last_error { shift->last_error(undef) } - sub send_status { push @{shift->sent_messages}, @_ } + sub send_status ($self, @args) { push @{$self->sent_messages}, @args } sub register { shift->register_called(1) } sub add_context_to_last_error { @@ -135,7 +135,7 @@ $self->last_error($self->last_error . " on $context"); } sub _retry_delay { 0 } - sub evaluate_error { OpenQA::Worker::WebUIConnection::evaluate_error(@_) } + sub evaluate_error (@args) { OpenQA::Worker::WebUIConnection::evaluate_error(@args) } } # uncoverable statement count:1 package Test::FakeEngine { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/t/26-controllerrunning.t new/openQA-5.1778134320.e889287c/t/26-controllerrunning.t --- old/openQA-5.1777995277.b985bea2/t/26-controllerrunning.t 2026-05-05 17:34:37.000000000 +0200 +++ new/openQA-5.1778134320.e889287c/t/26-controllerrunning.t 2026-05-07 08:12:00.000000000 +0200 @@ -301,8 +301,8 @@ package Mojo::Transaction::Fake; use Mojo::Base 'Mojo::Transaction', -signatures; -sub resume { ++$_[0]{writing} and return $_[0]->emit('resume') } -sub connection { shift->{fakestream} } +sub resume ($self) { ++$self->{writing} and return $self->emit('resume') } +sub connection ($self) { $self->{fakestream} } sub remote_address { '::1' } sub error { $fake_error } sub finish ($self) { $self->emit(finish => $self) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/t/30-test_parser.t new/openQA-5.1778134320.e889287c/t/30-test_parser.t --- old/openQA-5.1777995277.b985bea2/t/30-test_parser.t 2026-05-05 17:34:37.000000000 +0200 +++ new/openQA-5.1778134320.e889287c/t/30-test_parser.t 2026-05-07 08:12:00.000000000 +0200 @@ -970,7 +970,7 @@ is $parser->results->size, 5, 'Expected five test groups'; my $result0 = $parser->results->get(0); - is $result0->{name}, 'selftests:cgroup:test_core', 'The first test group has expected name'; + is $result0->{name}, 'test_core', 'The first test group has expected name'; is $result0->result, 'passed', 'Group result is passed'; is scalar @{$result0->details}, 12, 'Has 12 subtest details'; @@ -996,7 +996,7 @@ is $parser->results->size, 3, 'Three test groups parsed (last one missing the final summary line)'; my $last = $parser->results->get(2); - is $last->{name}, 'selftests:cgroup:test_zswap', 'Last test group name is correct'; + is $last->{name}, 'test_zswap', 'Last test group name is correct'; is scalar @{$last->details}, 7, 'Last group has 7 subtests'; is $last->details->[0]->{title}, 'test_zswap_usage', 'First subtest parsed correctly'; is $last->details->[-1]->{title}, 'test_no_invasive_cgroup_shrink', 'Last subtest parsed'; @@ -1021,6 +1021,40 @@ is $group2->details->[1]{result}, 'ok'; }; +subtest 'ktap ignores inner selftest status comments' => sub { + my $ktap = <<'EOF'; +TAP version 13 +1..3 +# selftests: bpf: test_xdp_redirect.sh +# timeout set to 0 +# selftests: test_xdp_redirect xdpgeneric [PASS] +# selftests: test_xdp_redirect xdpdrv [PASS] +ok 1 selftests: bpf: test_xdp_redirect.sh +# selftests: bpf: test_lwt_seg6local.sh +# timeout set to 0 +# selftests: test_lwt_seg6local [PASS] +ok 2 selftests: bpf: test_lwt_seg6local.sh +# selftests: bpf: test_flow_dissector.sh +# timeout set to 0 +# selftests: test_flow_dissector: ipv6 [FAILED] +# selftests: test_flow_dissector [FAILED] +not ok 3 selftests: bpf: test_flow_dissector.sh # exit=1 +EOF + + my $p = OpenQA::Parser::Format::KTAP->new; + $p->parse($ktap); + + is $p->results->size, 3, 'inner status comments do not create extra groups'; + is_deeply [map { $p->results->get($_)->{name} } 0 .. 2], + [qw(test_xdp_redirect_sh test_lwt_seg6local_sh test_flow_dissector_sh)], + 'group names use only sanitized test names'; + is $p->results->get(0)->result, 'passed', 'first group passed'; + is $p->results->get(1)->result, 'passed', 'second group passed'; + is $p->results->get(2)->result, 'fail', 'failed summary still fails the group'; + unlike $_->{name}, qr/\[(?:PASS|FAILED)\]/, 'status comment is not used as a group name' + for @{$p->results->to_array}; +}; + done_testing; package OpenQA::Parser::Format::Dummy { # uncoverable statement diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/t/31-client_file.t new/openQA-5.1778134320.e889287c/t/31-client_file.t --- old/openQA-5.1777995277.b985bea2/t/31-client_file.t 2026-05-05 17:34:37.000000000 +0200 +++ new/openQA-5.1778134320.e889287c/t/31-client_file.t 2026-05-07 08:12:00.000000000 +0200 @@ -3,6 +3,7 @@ # SPDX-License-Identifier: GPL-2.0-or-later use Test::Most; +use Mojo::Base -signatures; use Test::Warnings ':report_warnings'; use FindBin; @@ -13,7 +14,7 @@ use Mojo::File qw(path tempfile tempdir); use OpenQA::Test::TimeLimit '15'; -sub file_path { OpenQA::File->new(file => path(@_)) } +sub file_path (@args) { OpenQA::File->new(file => path(@args)) } subtest 'base' => sub { my $file = file_path($FindBin::Bin, 'data', 'ltp_test_result_format.json'); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/t/40-openqa-clone-job.t new/openQA-5.1778134320.e889287c/t/40-openqa-clone-job.t --- old/openQA-5.1777995277.b985bea2/t/40-openqa-clone-job.t 2026-05-05 17:34:37.000000000 +0200 +++ new/openQA-5.1778134320.e889287c/t/40-openqa-clone-job.t 2026-05-07 08:12:00.000000000 +0200 @@ -3,6 +3,7 @@ # SPDX-License-Identifier: GPL-2.0-or-later use Test::Most; +use Mojo::Base -signatures; use Test::Warnings qw(warning :report_warnings); use FindBin; use lib "$FindBin::Bin/lib", "$FindBin::Bin/../external/os-autoinst-common/lib"; @@ -12,10 +13,10 @@ $ENV{OPENQA_CONFIG} = "$FindBin::Bin/data"; -sub test_once { +sub test_once (@args) { # Report failure at the callsite instead of the test function local $Test::Builder::Level = $Test::Builder::Level + 1; - test_cmd('script/openqa-clone-job', @_); + test_cmd('script/openqa-clone-job', @args); } require "$FindBin::Bin/../script/openqa-clone-job"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/t/40-script_load_dump_templates.t new/openQA-5.1778134320.e889287c/t/40-script_load_dump_templates.t --- old/openQA-5.1777995277.b985bea2/t/40-script_load_dump_templates.t 2026-05-05 17:34:37.000000000 +0200 +++ new/openQA-5.1778134320.e889287c/t/40-script_load_dump_templates.t 2026-05-07 08:12:00.000000000 +0200 @@ -20,16 +20,16 @@ use Cpanel::JSON::XS (); -sub test_once { +sub test_once (@args) { # Report failure at the callsite instead of the test function local $Test::Builder::Level = $Test::Builder::Level + 1; - test_cmd(path(curfile->dirname, '../script/openqa-load-templates')->realpath, @_); + test_cmd(path(curfile->dirname, '../script/openqa-load-templates')->realpath, @args); } -sub dump_templates { +sub dump_templates (@args) { # Report failure at the callsite instead of the test function local $Test::Builder::Level = $Test::Builder::Level + 1; - test_cmd(path(curfile->dirname, '../script/openqa-dump-templates')->realpath, @_); + test_cmd(path(curfile->dirname, '../script/openqa-dump-templates')->realpath, @args); } sub decode { Cpanel::JSON::XS->new->relaxed->decode(path(shift)->slurp); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/t/40-script_openqa-clone-custom-git-refspec.t new/openQA-5.1778134320.e889287c/t/40-script_openqa-clone-custom-git-refspec.t --- old/openQA-5.1777995277.b985bea2/t/40-script_openqa-clone-custom-git-refspec.t 2026-05-05 17:34:37.000000000 +0200 +++ new/openQA-5.1778134320.e889287c/t/40-script_openqa-clone-custom-git-refspec.t 2026-05-07 08:12:00.000000000 +0200 @@ -2,6 +2,7 @@ # SPDX-License-Identifier: GPL-2.0-or-later use Test::Most; +use Mojo::Base -signatures; use FindBin; use lib "$FindBin::Bin/lib", "$FindBin::Bin/../external/os-autoinst-common/lib"; @@ -14,12 +15,12 @@ # prevent all network access to stay local my $cmd = 'unshare -r -n script/openqa-clone-custom-git-refspec'; -sub run_once { run_cmd($cmd, @_) } +sub run_once (@args) { run_cmd($cmd, @args) } -sub test_once { +sub test_once (@args) { # Report failure at the callsite instead of the test function local $Test::Builder::Level = $Test::Builder::Level + 1; - test_cmd($cmd, @_); + test_cmd($cmd, @args); } # instruct openqa-clone-custom-git-refspec to use dry-run modes for all calls diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/t/api/14-plugin_obs_rsync_async.t new/openQA-5.1778134320.e889287c/t/api/14-plugin_obs_rsync_async.t --- old/openQA-5.1777995277.b985bea2/t/api/14-plugin_obs_rsync_async.t 2026-05-05 17:34:37.000000000 +0200 +++ new/openQA-5.1778134320.e889287c/t/api/14-plugin_obs_rsync_async.t 2026-05-07 08:12:00.000000000 +0200 @@ -2,6 +2,7 @@ # SPDX-License-Identifier: GPL-2.0-or-later use Test::Most; +use Mojo::Base -signatures; use IPC::Run qw(start); use FindBin; @@ -29,13 +30,13 @@ # we need gru running to test response 200 my $gru = start_gru(); -sub _jobs { - my $results = $t->app->minion->backend->list_jobs(0, 400, {tasks => ['obs_rsync_run'], states => \@_}); +sub _jobs (@args) { + my $results = $t->app->minion->backend->list_jobs(0, 400, {tasks => ['obs_rsync_run'], states => \@args}); return $results->{total}, $results->{jobs}; } -sub _jobs_cnt { - (my $cnt, undef) = _jobs(@_); +sub _jobs_cnt (@args) { + (my $cnt, undef) = _jobs(@args); return $cnt; } @@ -73,16 +74,16 @@ # this function communicates with t/data/openqa-trigger-from-obs/script/rsync.sh # when file .$project-ready is created, then rsync process should finish -sub signal_rsync_ready { - foreach (@_) { +sub signal_rsync_ready (@args) { + foreach (@args) { my $filename = Mojo::File->new($home, 'script', ".$_-ready")->to_string; open my $fh, '>', $filename || die "Cannot create file $filename: $!"; close $fh; } } -sub unlink_signal_rsync_ready { - foreach (@_) { +sub unlink_signal_rsync_ready (@args) { + foreach (@args) { my $filename = Mojo::File->new($home, 'script', ".$_-ready")->to_string; -f $filename || next; unlink $filename || die "Cannot unlink file $filename: $!"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/t/lib/CoverageWorkaround.pm new/openQA-5.1778134320.e889287c/t/lib/CoverageWorkaround.pm --- old/openQA-5.1777995277.b985bea2/t/lib/CoverageWorkaround.pm 2026-05-05 17:34:37.000000000 +0200 +++ new/openQA-5.1778134320.e889287c/t/lib/CoverageWorkaround.pm 2026-05-07 08:12:00.000000000 +0200 @@ -75,7 +75,8 @@ *B::Deparse::pp_leave = \&pp_leave; } -sub pp_leave { # fix https://rt.cpan.org/Ticket/Display.html?id=134812 +# fix https://rt.cpan.org/Ticket/Display.html?id=134812 +sub pp_leave { ## no critic (Subroutines::RequireArgUnpacking) my $self = shift; my ($op) = @_; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/t/ui/27-plugin_obs_rsync_gru.t new/openQA-5.1778134320.e889287c/t/ui/27-plugin_obs_rsync_gru.t --- old/openQA-5.1777995277.b985bea2/t/ui/27-plugin_obs_rsync_gru.t 2026-05-05 17:34:37.000000000 +0200 +++ new/openQA-5.1778134320.e889287c/t/ui/27-plugin_obs_rsync_gru.t 2026-05-07 08:12:00.000000000 +0200 @@ -21,8 +21,8 @@ has id => 0; has app => sub { $app }; has retries => 200; - sub finish { $_[0]->{state} = 'finished'; $_[0]->{result} = $_[1] } - sub info { {notes => {project_lock => 1}} } + sub finish ($self, $result) { $self->{state} = 'finished'; $self->{result} = $result } + sub info (@) { {notes => {project_lock => 1}} } } # uncoverable statement $t->post_ok('/admin/obs_rsync/Proj1/runs' => $params)->status_is(201, 'trigger rsync'); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/tools/test_helm_chart new/openQA-5.1778134320.e889287c/tools/test_helm_chart --- old/openQA-5.1777995277.b985bea2/tools/test_helm_chart 2026-05-05 17:34:37.000000000 +0200 +++ new/openQA-5.1778134320.e889287c/tools/test_helm_chart 2026-05-07 08:12:00.000000000 +0200 @@ -1,27 +1,42 @@ #!/bin/bash set -euo pipefail -which helm > /dev/null || echo "Error: Helm is not installed" -which ct > /dev/null || echo "Error: ct is not installed" +for cmd in helm ct yamale yamllint; do + if ! command -v "$cmd" > /dev/null; then + echo "Error: $cmd is not installed" >&2 + exit 1 + fi +done +if [[ "${1:-lint}" != "lint" ]]; then + if ! command -v kubectl > /dev/null; then + echo "Error: kubectl is not installed" >&2 + exit 1 + fi +fi + +# Create a temporary directory for isolated testing +tmp_dir=$(mktemp -d) +trap 'rm -rf "$tmp_dir"' EXIT -cd container/helm/ +# Copy the helm chart files to the temporary directory +cp -a container/helm/. "$tmp_dir/" +cd "$tmp_dir" -ct_common_args=() +ct_lint_args=() # Reference schema files from the installed package if they are not in the default locations for schema in chart_schema.yaml lintconf.yaml; do if [[ ! -f "$schema" && ! -f "$HOME/.ct/$schema" && ! -f "/etc/ct/$schema" ]]; then pkg_schema="/usr/share/doc/packages/chart-testing/$schema" if [[ -f "$pkg_schema" ]]; then if [[ "$schema" == "chart_schema.yaml" ]]; then - ct_common_args+=(--chart-yaml-schema "$pkg_schema") + ct_lint_args+=(--chart-yaml-schema "$pkg_schema") else - ct_common_args+=(--lint-conf "$pkg_schema") + ct_lint_args+=(--lint-conf "$pkg_schema") fi fi fi done ct_extra=(--helm-extra-set-args "--set=gateway.enabled=false --set=image.pullPolicy=IfNotPresent --set=worker.image.pullPolicy=IfNotPresent") -ct_install_args=("${ct_common_args[@]}") -[[ "${1:-lint}" != "lint" ]] && ct_install_args+=("${ct_extra[@]}") +[[ "${1:-lint}" == "lint" ]] && ct_install_args=("${ct_lint_args[@]}") || ct_install_args=("${ct_extra[@]}") ct "${1:-lint}" --debug --all --config ct.yaml "${ct_install_args[@]}" ++++++ openQA.obsinfo ++++++ --- /var/tmp/diff_new_pack.nsIDyK/_old 2026-05-07 15:47:53.878321912 +0200 +++ /var/tmp/diff_new_pack.nsIDyK/_new 2026-05-07 15:47:53.886322239 +0200 @@ -1,5 +1,5 @@ name: openQA -version: 5.1777995277.b985bea2 -mtime: 1777995277 -commit: b985bea28944e9257ed84ebc4f95af73d2f34a52 +version: 5.1778134320.e889287c +mtime: 1778134320 +commit: e889287c400f4a6dc1e791adaaa44a75bf06fccd
