diff --git a/.github/workflows/javascript.yml b/.github/workflows/javascript.yml index dc286dee12a..84333509b14 100644 --- a/.github/workflows/javascript.yml +++ b/.github/workflows/javascript.yml @@ -12,12 +12,12 @@ jobs: node-version: [16.x] os: [ubuntu-latest] steps: - - uses: actions/checkout@v1 - - name: Use Node ${{ matrix.node-version }} - uses: actions/setup-node@v1 - with: - node-version: ${{ matrix.node-version }} - - name: npm install - run: npm i - - name: npm run lint - run: npm run lint + - uses: actions/checkout@v1 + - name: Use Node ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + - name: npm install + run: npm i + - name: npm run lint + run: npm run lint diff --git a/.mergify.yml b/.mergify.yml index 103c97f0b87..968ef56d410 100644 --- a/.mergify.yml +++ b/.mergify.yml @@ -2,35 +2,35 @@ pull_request_rules: - name: automatic merge conditions: - and: &base_checks - - base=master - - -label~=^acceptance-tests-needed|not-ready - # wait explicitly for one of the final checks to show up to be on the - # safe side even in case of checks not reporting back at all - - "status-success=codecov/project" - - "status-success=codecov/patch" - # Multibuild results will not report the "pending" status: - # https://openbuildservice.org/help/manuals/obs-user-guide/cha.obs.scm_ci_workflow_integration.html#sec.obs.obs_scm_ci_workflow_integration.setup.status_reporting - # "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>=35" - - "status-success=static-check-containers" - - "status-success=webui-docker-compose" - - "#check-failure=0" - - "#check-pending=0" - - linear-history + - base=master + - -label~=^acceptance-tests-needed|not-ready + # wait explicitly for one of the final checks to show up to be on the + # safe side even in case of checks not reporting back at all + - status-success=codecov/project + - status-success=codecov/patch + # Multibuild results will not report the "pending" status: + # https://openbuildservice.org/help/manuals/obs-user-guide/cha.obs.scm_ci_workflow_integration.html#sec.obs.obs_scm_ci_workflow_integration.setup.status_reporting + # "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>=35" + - status-success=static-check-containers + - status-success=webui-docker-compose + - "#check-failure=0" + - "#check-pending=0" + - linear-history - and: - - "#approved-reviews-by>=2" - - "#changes-requested-reviews-by=0" - # https://doc.mergify.io/examples.html#require-all-requested-reviews-to-be-approved - - "#review-requested=0" + - "#approved-reviews-by>=2" + - "#changes-requested-reviews-by=0" + # https://doc.mergify.io/examples.html#require-all-requested-reviews-to-be-approved + - "#review-requested=0" actions: &merge merge: method: merge - name: automatic merge on special label conditions: - and: *base_checks - - "label=merge-fast" + - label=merge-fast actions: *merge - name: automatic merge for dependency bot updates conditions: diff --git a/.obs/workflows.yml b/.obs/workflows.yml index 02baf7ccef4..f9072961aea 100644 --- a/.obs/workflows.yml +++ b/.obs/workflows.yml @@ -1,33 +1,33 @@ --- pr: steps: - - branch_package: - source_project: devel:openQA - source_package: openQA - target_project: devel:openQA:GitHub - add_repositories: disabled - - configure_repositories: - project: devel:openQA:GitHub - repositories: - - name: openSUSE_Tumbleweed - paths: - - target_project: openSUSE:Factory - target_repository: snapshot - - target_project: devel:openQA - target_repository: openSUSE_Tumbleweed - architectures: [ x86_64 ] - - name: openSUSE_Leap_15.5 - paths: - - target_project: devel:openQA:Leap:15.5 - target_repository: openSUSE_Leap_15.5 - - target_project: devel:openQA - target_repository: openSUSE_Leap_15.5 - architectures: [ x86_64 ] - - name: SLE_15_SP6_Backports - paths: - - target_project: openSUSE:Backports:SLE-15-SP6:Update - target_repository: standard - architectures: [ x86_64 ] + - branch_package: + source_project: devel:openQA + source_package: openQA + target_project: devel:openQA:GitHub + add_repositories: disabled + - configure_repositories: + project: devel:openQA:GitHub + repositories: + - name: openSUSE_Tumbleweed + paths: + - target_project: openSUSE:Factory + target_repository: snapshot + - target_project: devel:openQA + target_repository: openSUSE_Tumbleweed + architectures: [ x86_64 ] + - name: openSUSE_Leap_15.5 + paths: + - target_project: devel:openQA:Leap:15.5 + target_repository: openSUSE_Leap_15.5 + - target_project: devel:openQA + target_repository: openSUSE_Leap_15.5 + architectures: [ x86_64 ] + - name: SLE_15_SP6_Backports + paths: + - target_project: openSUSE:Backports:SLE-15-SP6:Update + target_repository: standard + architectures: [ x86_64 ] filters: event: pull_request diff --git a/.yamllint b/.yamllint index 4123e43ad3c..fb637fa5fe7 100644 --- a/.yamllint +++ b/.yamllint @@ -1,10 +1,21 @@ extends: default +ignore: | + t/data/job-templates/invalid-yaml-schema.yaml + t/data/job-templates/duplicate-key.yaml + t/data/08-opensuse-test.yaml + t/data/08-opensuse.yaml + container/helm/** + dbicdh + node_modules + + rules: line-length: max: 160 document-start: disable indentation: - indent-sequences: whatever + indent-sequences: true + spaces: 2 # Allows aligning subsequent lines with [] sequences brackets: @@ -12,11 +23,11 @@ rules: max-spaces-inside: -1 commas: max-spaces-after: -1 + # Allows aligning key value pairs colons: max-spaces-after: -1 -ignore: | - t/data/job-templates/invalid-yaml-schema.yaml - t/data/job-templates/duplicate-key.yaml - container/helm/** + truthy: + allowed-values: ['true', 'false'] + check-keys: false diff --git a/.yamltidy b/.yamltidy new file mode 100644 index 00000000000..0b532a9d9f0 --- /dev/null +++ b/.yamltidy @@ -0,0 +1,8 @@ +--- +v: v0.1 +indentation: + spaces: 2 + block-sequence-in-mapping: 2 +trailing-spaces: fix +scalar-style: + default: plain diff --git a/external/os-autoinst-common/.github/workflows/base-commit-message-checker.yml b/external/os-autoinst-common/.github/workflows/base-commit-message-checker.yml index a34ceebe11f..480b718aa28 100644 --- a/external/os-autoinst-common/.github/workflows/base-commit-message-checker.yml +++ b/external/os-autoinst-common/.github/workflows/base-commit-message-checker.yml @@ -1,7 +1,6 @@ --- name: 'Commit message check' -# yamllint disable-line rule:truthy on: workflow_call: secrets: diff --git a/external/os-autoinst-common/.github/workflows/commit-message-checker.yml b/external/os-autoinst-common/.github/workflows/commit-message-checker.yml index 3d42b484ef0..9ffff1afc6c 100644 --- a/external/os-autoinst-common/.github/workflows/commit-message-checker.yml +++ b/external/os-autoinst-common/.github/workflows/commit-message-checker.yml @@ -1,7 +1,6 @@ --- name: 'Commit message check' -# yamllint disable-line rule:truthy on: pull_request: push: diff --git a/external/os-autoinst-common/.github/workflows/perl-critic.yml b/external/os-autoinst-common/.github/workflows/perl-critic.yml index 38e63a3c558..d8d6161ccd1 100644 --- a/external/os-autoinst-common/.github/workflows/perl-critic.yml +++ b/external/os-autoinst-common/.github/workflows/perl-critic.yml @@ -1,7 +1,6 @@ --- name: 'Perl critic' -# yamllint disable-line rule:truthy on: pull_request: push: diff --git a/external/os-autoinst-common/.github/workflows/perl-lint-checks.yml b/external/os-autoinst-common/.github/workflows/perl-lint-checks.yml index 0a77106d134..f6e34527079 100644 --- a/external/os-autoinst-common/.github/workflows/perl-lint-checks.yml +++ b/external/os-autoinst-common/.github/workflows/perl-lint-checks.yml @@ -1,7 +1,6 @@ --- name: 'Perl static checks' -# yamllint disable-line rule:truthy on: pull_request: push: diff --git a/external/os-autoinst-common/.github/workflows/yamllint.yml b/external/os-autoinst-common/.github/workflows/yamllint.yml new file mode 100644 index 00000000000..3e53398f7a8 --- /dev/null +++ b/external/os-autoinst-common/.github/workflows/yamllint.yml @@ -0,0 +1,19 @@ +--- +name: 'YAML-lint' + +on: + pull_request: + push: + branches: + - 'master' + +jobs: + yaml-lint: + runs-on: ubuntu-latest + name: "YAML-lint" + steps: + - uses: actions/checkout@v4 + - uses: docker://registry.opensuse.org/home/okurz/container/containers/tumbleweed:yamllint + with: + entrypoint: yamllint + args: -c .yamllint --strict ./ --format github diff --git a/external/os-autoinst-common/.gitrepo b/external/os-autoinst-common/.gitrepo index 8da3a4c42df..6abd47a1e32 100644 --- a/external/os-autoinst-common/.gitrepo +++ b/external/os-autoinst-common/.gitrepo @@ -6,7 +6,7 @@ [subrepo] remote = git@github.com:os-autoinst/os-autoinst-common.git branch = master - commit = 3d6106cb21f6320edc144297546cda0aaa155f01 - parent = 98e54f9632959aed6a15e3d0afe0a9bdb6249bd4 + commit = a94b58b23be8ddb5bf85a7b1f87914ba9e71b9e6 + parent = 1e9bfef6f182ff6e30268174f6414bf48c35b89c method = merge cmdver = 0.4.6 diff --git a/external/os-autoinst-common/.perlcriticrc b/external/os-autoinst-common/.perlcriticrc index 6610c16895c..0addc1f493b 100644 --- a/external/os-autoinst-common/.perlcriticrc +++ b/external/os-autoinst-common/.perlcriticrc @@ -46,4 +46,4 @@ severity = 5 # -- Superfluous use strict/warning. [RedundantStrictWarning] -equivalent_modules = Test::Most \ No newline at end of file +equivalent_modules = Test::Most diff --git a/external/os-autoinst-common/.yamlignore b/external/os-autoinst-common/.yamlignore new file mode 100644 index 00000000000..e69de29bb2d diff --git a/external/os-autoinst-common/.yamllint b/external/os-autoinst-common/.yamllint new file mode 100644 index 00000000000..0b3d54a6437 --- /dev/null +++ b/external/os-autoinst-common/.yamllint @@ -0,0 +1,25 @@ +extends: default +ignore-from-file: [.gitignore, .yamlignore] + +rules: + line-length: + max: 160 + document-start: disable + indentation: + indent-sequences: true + spaces: 2 + + # Allows aligning subsequent lines with [] sequences + brackets: + min-spaces-inside: 0 + max-spaces-inside: -1 + commas: + max-spaces-after: -1 + + # Allows aligning key value pairs + colons: + max-spaces-after: -1 + + truthy: + allowed-values: ['true', 'false'] + check-keys: false diff --git a/external/os-autoinst-common/lib/perlcritic/Perl/Critic/Policy/SpaceAfterSubroutineName.pm b/external/os-autoinst-common/lib/perlcritic/Perl/Critic/Policy/SpaceAfterSubroutineName.pm new file mode 100644 index 00000000000..7cae1e7c5a1 --- /dev/null +++ b/external/os-autoinst-common/lib/perlcritic/Perl/Critic/Policy/SpaceAfterSubroutineName.pm @@ -0,0 +1,61 @@ +# Copyright SUSE LLC +# SPDX-License-Identifier: GPL-2.0-or-later + +package Perl::Critic::Policy::SpaceAfterSubroutineName; + +use strict; +use warnings; +use version 0.77; +use experimental 'signatures'; + +use base 'Perl::Critic::Policy::Subroutines::ProhibitSubroutinePrototypes'; + +use Perl::Critic::Utils qw{ :severities }; + +our $VERSION = '0.0.1'; + +my $DESC = q{Inconsistent sub declaration}; +my $EXPL = q{Sub '%s' must have only one space surrounding name, parenthesis and/or block body.}; + +sub default_themes { qw(openqa) } +sub default_severity { $SEVERITY_HIGHEST } +sub supported_parameters { () } +sub applies_to { 'PPI::Statement::Sub' } + +# check that use strict/warnings is not present when equivalent modules are. +sub violates ($self, $elem, $doc) { + # Grep the first 7 tokens: + # Case 1: bare sub + # 0. literal "sub" + # 1. :space: # must be 1 + # 2. sub_name + # 3. :space: # must be 1 + # 4. block/structure + # Case 2: sub with prototype/signature + # 0. literal "sub" + # 1. :space: # must be 1 + # 2. sub_name + # 3. :space: # must be 1 + # 4. prototype + # 5. :space: # must be 1 + # 6. block/structure + + my @tokens = ($elem->tokens())[0 .. 6]; + return $self->violation($DESC, sprintf($EXPL, $elem->name), $elem) unless _is_surrounded_by_one_space($tokens[2]); + + return () if $tokens[4]->isa('PPI::Token::Structure'); + + return $self->violation($DESC, sprintf($EXPL, $elem->name), $elem) unless _is_surrounded_by_one_space($tokens[4]); + + return (); +} + +sub _is_only_one_space ($token) { + return $token->isa('PPI::Token::Whitespace') && $token->content eq ' '; +} + +sub _is_surrounded_by_one_space ($token) { + return _is_only_one_space($token->previous_sibling) && _is_only_one_space($token->next_sibling); +} + +1; diff --git a/external/os-autoinst-common/tools/tidyall b/external/os-autoinst-common/tools/tidyall index 79b58ec9a20..69a9be4c992 100755 --- a/external/os-autoinst-common/tools/tidyall +++ b/external/os-autoinst-common/tools/tidyall @@ -10,13 +10,13 @@ use Perl::Tidy; use Module::CPANfile; use FindBin '$Bin'; -=item perltidy_version +=item perltidy_version () Grabs the perltidy version from cpanfile using Module::CPANfile. =cut -sub perltidy_version { +sub perltidy_version () { my $cpanfile_location; # Try searching for a cpanfile in: # - the current working directory diff --git a/public/schema/JobScenarios-01.yaml b/public/schema/JobScenarios-01.yaml index 46a9cb7986e..7e06a2cb92e 100644 --- a/public/schema/JobScenarios-01.yaml +++ b/public/schema/JobScenarios-01.yaml @@ -4,9 +4,9 @@ description: Definitions for openQA job scenarios type: object additionalProperties: false required: -- job_templates + - job_templates patternProperties: - '^\.[a-z0-9_]+$': + ^\.[a-z0-9_]+$: type: object description: Definitions that can be re-used @@ -15,7 +15,7 @@ properties: type: object additionalProperties: false patternProperties: - '^[A-Za-z0-9._*-]+$': + ^[A-Za-z0-9._*-]+$: type: object description: The name of a product (medium) required: @@ -40,14 +40,14 @@ properties: description: Additional test variables to be set additionalProperties: false patternProperties: - '^[A-Z_+]+[A-Z0-9_]*$': + ^[A-Z_+]+[A-Z0-9_]*$: type: string machines: type: object additionalProperties: false patternProperties: - '^[A-Za-z0-9._*-]+$': + ^[A-Za-z0-9._*-]+$: type: object description: The name of a machine required: @@ -66,7 +66,7 @@ properties: type: object additionalProperties: false patternProperties: - '^[A-Za-z\s0-9_*.+-]+$': + ^[A-Za-z\s0-9_*.+-]+$: type: object description: The name of the job template additionalProperties: false diff --git a/public/schema/JobTemplates-01.yaml b/public/schema/JobTemplates-01.yaml index c058ab6b0b4..393799993a9 100644 --- a/public/schema/JobTemplates-01.yaml +++ b/public/schema/JobTemplates-01.yaml @@ -4,10 +4,10 @@ description: openQA job template type: object additionalProperties: false required: -- products -- scenarios + - products + - scenarios patternProperties: - '^\.[a-z0-9_]+$': + ^\.[a-z0-9_]+$: type: object description: Definitions that can be re-used @@ -17,60 +17,60 @@ properties: type: object additionalProperties: false patternProperties: - '^[a-z0-9_]+$': + ^[a-z0-9_]+$: type: object description: The architecture of the test suite(s) eg. ppc64le patternProperties: - '^.*$': + ^.*$: type: array description: The product to run the test suite(s) on items: anyOf: - - type: string - description: Name of a test suite name - - type: object - maxProperties: 1 - description: A test suite with machine and/or priority value specified, or a custom job template name if testsuite was specified - additionalProperties: false - patternProperties: - &testsuite-pattern '^[A-Za-z\s0-9_*.+-]+$': - type: object - additionalProperties: false - properties: - machine: &machine-definition - oneOf: - - type: string - - type: array - items: + - type: string + description: Name of a test suite name + - type: object + maxProperties: 1 + description: A test suite with machine and/or priority value specified, or a custom job template name if testsuite was specified + additionalProperties: false + patternProperties: + &testsuite-pattern ^[A-Za-z\s0-9_*.+-]+$: + type: object + additionalProperties: false + properties: + machine: &machine-definition + oneOf: - type: string - priority: &priority-definition - type: number - settings: &settings-definition - type: object - description: Additional test variables to be set - additionalProperties: false - patternProperties: - '^[A-Z_+]+[A-Z0-9_]*$': - type: string - testsuite: - type: [string, 'null'] - pattern: *testsuite-pattern - description: The test suite this scenario is based on if a custom job template name was used - description: - type: string - description: The description of the job template + - type: array + items: + - type: string + priority: &priority-definition + type: number + settings: &settings-definition + type: object + description: Additional test variables to be set + additionalProperties: false + patternProperties: + ^[A-Z_+]+[A-Z0-9_]*$: + type: string + testsuite: + type: [string, 'null'] + pattern: *testsuite-pattern + description: The test suite this scenario is based on if a custom job template name was used + description: + type: string + description: The description of the job template defaults: description: A set of architectures with default configurations type: object additionalProperties: false patternProperties: - '^[a-z0-9_]+$': + ^[a-z0-9_]+$: type: object description: The architecture to define a default configuration for eg. ppc64le required: - - machine - - priority + - machine + - priority additionalProperties: false properties: machine: *machine-definition @@ -81,7 +81,7 @@ properties: type: object additionalProperties: false patternProperties: - '^[A-Za-z0-9._*-]+$': + ^[A-Za-z0-9._*-]+$: type: object description: The name of a product (medium) required: diff --git a/t/data/08-create-modify-group.yaml b/t/data/08-create-modify-group.yaml index b63ff086561..8cf81f7f7d3 100644 --- a/t/data/08-create-modify-group.yaml +++ b/t/data/08-create-modify-group.yaml @@ -1,14 +1,14 @@ scenarios: i586: opensuse-13.1-DVD-i586: - - foobar # Test names shouldn't conflict across groups - - spam - - eggs: - machine: 32bit - priority: 20 - settings: - FOO: removed later - BAR: updated later + - foobar # Test names shouldn't conflict across groups + - spam + - eggs: + machine: 32bit + priority: 20 + settings: + FOO: removed later + BAR: updated later defaults: i586: machine: 64bit diff --git a/t/data/08-hidden-keys.yaml b/t/data/08-hidden-keys.yaml index e931ed5814f..eaaf53a86b4 100644 --- a/t/data/08-hidden-keys.yaml +++ b/t/data/08-hidden-keys.yaml @@ -16,7 +16,7 @@ products: scenarios: i586: opensuse-13.1-DVD-i586: - - kde_usb: - settings: - USB: '1' - <<: *kde_template + - kde_usb: + settings: + USB: '1' + <<: *kde_template diff --git a/t/data/08-merge-expanded.yaml b/t/data/08-merge-expanded.yaml index 3ac8c3b8508..831ac41a7bd 100644 --- a/t/data/08-merge-expanded.yaml +++ b/t/data/08-merge-expanded.yaml @@ -1,26 +1,26 @@ scenarios: i586: opensuse-13.1-DVD-i586: - - lala: - settings: - A: default A - B: default B - testsuite: null - machine: 32bit - - lala2: - settings: - B: default2 B - C: default C - testsuite: null - machine: 32bit - - lala3: - settings: - A: default A - B: b - C: default C - D: d - testsuite: null - machine: 32bit + - lala: + settings: + A: default A + B: default B + testsuite: null + machine: 32bit + - lala2: + settings: + B: default2 B + C: default C + testsuite: null + machine: 32bit + - lala3: + settings: + A: default A + B: b + C: default C + D: d + testsuite: null + machine: 32bit products: opensuse-13.1-DVD-i586: distri: opensuse diff --git a/t/data/08-merge.yaml b/t/data/08-merge.yaml index 8556cf7c052..78ce389ee79 100644 --- a/t/data/08-merge.yaml +++ b/t/data/08-merge.yaml @@ -1,25 +1,25 @@ scenarios: i586: opensuse-13.1-DVD-i586: - - lala: - settings: &common1 - A: default A - B: default B - testsuite: null - machine: 32bit - - lala2: - settings: &common2 - B: default2 B - C: default C - testsuite: null - machine: 32bit - - lala3: - settings: - <<: [*common1, *common2] - B: b - D: d - testsuite: null - machine: 32bit + - lala: + settings: &common1 + A: default A + B: default B + testsuite: null + machine: 32bit + - lala2: + settings: &common2 + B: default2 B + C: default C + testsuite: null + machine: 32bit + - lala3: + settings: + <<: [*common1, *common2] + B: b + D: d + testsuite: null + machine: 32bit products: opensuse-13.1-DVD-i586: distri: opensuse diff --git a/t/data/08-opensuse-2.yaml b/t/data/08-opensuse-2.yaml index d716e45005c..91e9d1a3f9a 100644 --- a/t/data/08-opensuse-2.yaml +++ b/t/data/08-opensuse-2.yaml @@ -10,30 +10,30 @@ products: scenarios: i586: opensuse-13.1-DVD-i586: - - textmode: - machine: 64bit - - textmode: - description: 32bit textmode prio 40 - machine: 32bit - - kde: - machine: 32bit - - kde: - machine: 64bit - - RAID0: - priority: 20 - - client1: - machine: 32bit - - client1: - machine: 64bit - - server: - machine: 64bit - - server: - machine: 32bit - - client2: - machine: 32bit - - client2: - machine: 64bit - - advanced_kde: - settings: - ADVANCED: '1' - DESKTOP: advanced_kde + - textmode: + machine: 64bit + - textmode: + description: 32bit textmode prio 40 + machine: 32bit + - kde: + machine: 32bit + - kde: + machine: 64bit + - RAID0: + priority: 20 + - client1: + machine: 32bit + - client1: + machine: 64bit + - server: + machine: 64bit + - server: + machine: 32bit + - client2: + machine: 32bit + - client2: + machine: 64bit + - advanced_kde: + settings: + ADVANCED: '1' + DESKTOP: advanced_kde diff --git a/t/data/08-refs-vars.yaml b/t/data/08-refs-vars.yaml index 421e07acf4a..26c60746ffb 100644 --- a/t/data/08-refs-vars.yaml +++ b/t/data/08-refs-vars.yaml @@ -44,136 +44,136 @@ products: scenarios: x86_64: sle-12-SP5-Server-DVD-A-Staging-x86_64: - - gnome - - cryptlvm_minimal_x - - default_install: &default_install - settings: - INSTALLONLY: "" - - installcheck - - migration_zdup_offline_sle12sp2_64bit-staging: &zdup - priority: 50 - - rescue_system_sle11sp4 - - RAID1: &raid1 - settings: - INSTALLATION_VALIDATION: "" - INSTALLONLY: "" - - ext4_uefi-staging: &ext4 - machine: uefi-staging - - minimal+base + - gnome + - cryptlvm_minimal_x + - default_install: &default_install + settings: + INSTALLONLY: "" + - installcheck + - migration_zdup_offline_sle12sp2_64bit-staging: &zdup + priority: 50 + - rescue_system_sle11sp4 + - RAID1: &raid1 + settings: + INSTALLATION_VALIDATION: "" + INSTALLONLY: "" + - ext4_uefi-staging: &ext4 + machine: uefi-staging + - minimal+base sle-12-SP5-Server-DVD-B-Staging-x86_64: - - gnome - - cryptlvm_minimal_x - - default_install: - *default_install - - installcheck - - migration_zdup_offline_sle12sp2_64bit-staging: - *zdup - - rescue_system_sle11sp4 - - RAID1: - *raid1 - - ext4_uefi-staging: - *ext4 - - minimal+base + - gnome + - cryptlvm_minimal_x + - default_install: + *default_install + - installcheck + - migration_zdup_offline_sle12sp2_64bit-staging: + *zdup + - rescue_system_sle11sp4 + - RAID1: + *raid1 + - ext4_uefi-staging: + *ext4 + - minimal+base sle-12-SP5-Server-DVD-C-Staging-x86_64: - - gnome - - cryptlvm_minimal_x - - default_install: - *default_install - - installcheck - - migration_zdup_offline_sle12sp2_64bit-staging: - *zdup - - rescue_system_sle11sp4 - - RAID1: - *raid1 - - ext4_uefi-staging: - *ext4 - - minimal+base + - gnome + - cryptlvm_minimal_x + - default_install: + *default_install + - installcheck + - migration_zdup_offline_sle12sp2_64bit-staging: + *zdup + - rescue_system_sle11sp4 + - RAID1: + *raid1 + - ext4_uefi-staging: + *ext4 + - minimal+base sle-12-SP5-Server-DVD-D-Staging-x86_64: - - gnome - - cryptlvm_minimal_x - - default_install: - *default_install - - installcheck - - migration_zdup_offline_sle12sp2_64bit-staging: - *zdup - - rescue_system_sle11sp4 - - RAID1: - *raid1 - - ext4_uefi-staging: - *ext4 - - minimal+base + - gnome + - cryptlvm_minimal_x + - default_install: + *default_install + - installcheck + - migration_zdup_offline_sle12sp2_64bit-staging: + *zdup + - rescue_system_sle11sp4 + - RAID1: + *raid1 + - ext4_uefi-staging: + *ext4 + - minimal+base sle-12-SP5-Server-DVD-E-Staging-x86_64: - - cryptlvm - - gnome - - cryptlvm_minimal_x - - default_install: - *default_install - - installcheck - - migration_zdup_offline_sle12sp2_64bit-staging: - *zdup - - rescue_system_sle11sp4 - - RAID1: - *raid1 - - ext4_uefi-staging: - *ext4 - - minimal+base + - cryptlvm + - gnome + - cryptlvm_minimal_x + - default_install: + *default_install + - installcheck + - migration_zdup_offline_sle12sp2_64bit-staging: + *zdup + - rescue_system_sle11sp4 + - RAID1: + *raid1 + - ext4_uefi-staging: + *ext4 + - minimal+base sle-12-SP5-Server-DVD-H-Staging-x86_64: - - gnome - - cryptlvm_minimal_x - - default_install: - *default_install - - installcheck - - migration_zdup_offline_sle12sp2_64bit-staging: - *zdup - - rescue_system_sle11sp4 - - RAID1: - *raid1 - - ext4_uefi-staging: - *ext4 - - minimal+base + - gnome + - cryptlvm_minimal_x + - default_install: + *default_install + - installcheck + - migration_zdup_offline_sle12sp2_64bit-staging: + *zdup + - rescue_system_sle11sp4 + - RAID1: + *raid1 + - ext4_uefi-staging: + *ext4 + - minimal+base sle-12-SP5-Server-DVD-S-Staging-x86_64: - - gnome - - cryptlvm_minimal_x - - default_install: - *default_install - - installcheck - - migration_zdup_offline_sle12sp2_64bit-staging: - *zdup - - rescue_system_sle11sp4 - - RAID1: - *raid1 - - ext4_uefi-staging: - *ext4 - - minimal+base + - gnome + - cryptlvm_minimal_x + - default_install: + *default_install + - installcheck + - migration_zdup_offline_sle12sp2_64bit-staging: + *zdup + - rescue_system_sle11sp4 + - RAID1: + *raid1 + - ext4_uefi-staging: + *ext4 + - minimal+base sle-12-SP5-Server-DVD-V-Staging-x86_64: - - gnome - - cryptlvm_minimal_x - - default_install: - *default_install - - installcheck - - migration_zdup_offline_sle12sp2_64bit-staging: - *zdup - - rescue_system_sle11sp4 - - RAID1: - *raid1 - - ext4_uefi-staging: - machine: uefi-virtio-vga - settings: - YAML_SCHEDULE: schedule/staging/%TEST%@uefi-staging.yaml - INSTALLONLY: "" - - minimal+base + - gnome + - cryptlvm_minimal_x + - default_install: + *default_install + - installcheck + - migration_zdup_offline_sle12sp2_64bit-staging: + *zdup + - rescue_system_sle11sp4 + - RAID1: + *raid1 + - ext4_uefi-staging: + machine: uefi-virtio-vga + settings: + YAML_SCHEDULE: schedule/staging/%TEST%@uefi-staging.yaml + INSTALLONLY: "" + - minimal+base sle-12-SP5-Server-DVD-Y-Staging-x86_64: - - autoyast_mini_no_product - - gnome - - cryptlvm_minimal_x - - default_install: - *default_install - - installcheck - - migration_zdup_offline_sle12sp2_64bit-staging: - *zdup - - rescue_system_sle11sp4 - - RAID1: - *raid1 - - ext4_uefi-staging: - *ext4 - - minimal+base + - autoyast_mini_no_product + - gnome + - cryptlvm_minimal_x + - default_install: + *default_install + - installcheck + - migration_zdup_offline_sle12sp2_64bit-staging: + *zdup + - rescue_system_sle11sp4 + - RAID1: + *raid1 + - ext4_uefi-staging: + *ext4 + - minimal+base diff --git a/t/data/08-refs.yaml b/t/data/08-refs.yaml index b3a015a4465..e29512334af 100644 --- a/t/data/08-refs.yaml +++ b/t/data/08-refs.yaml @@ -1,8 +1,8 @@ scenarios: i586: opensuse-13.1-DVD-i586: &tests - - spam - - eggs + - spam + - eggs ppc64: opensuse-13.1-DVD-ppc64: *tests diff --git a/t/data/08-testsuite-null.yaml b/t/data/08-testsuite-null.yaml index 63369786d03..f178962cc5d 100644 --- a/t/data/08-testsuite-null.yaml +++ b/t/data/08-testsuite-null.yaml @@ -1,11 +1,11 @@ scenarios: i586: opensuse-13.1-DVD-i586: - - lala: - testsuite: null - description: Testsuite null - machine: 32bit - priority: 97 + - lala: + testsuite: null + description: Testsuite null + machine: 32bit + priority: 97 products: opensuse-13.1-DVD-i586: distri: opensuse diff --git a/t/data/job-templates/openqa-invalid.yaml b/t/data/job-templates/openqa-invalid.yaml index fd620f3ffa8..84157fabbe0 100644 --- a/t/data/job-templates/openqa-invalid.yaml +++ b/t/data/job-templates/openqa-invalid.yaml @@ -9,7 +9,7 @@ products: scenarios: x86_64: foo: - - bar: - testsuite: null - settings: - FOO: BAR + - bar: + testsuite: null + settings: + FOO: BAR diff --git a/t/data/job-templates/openqa-null.yaml b/t/data/job-templates/openqa-null.yaml index ab1cc21b061..8201efc2023 100644 --- a/t/data/job-templates/openqa-null.yaml +++ b/t/data/job-templates/openqa-null.yaml @@ -16,19 +16,19 @@ products: scenarios: x86_64: openqa-*-dev-x86_64: - - openqa_install+publish: - testsuite: null - settings: - PUBLISH_HDD_1: 'opensuse-Tumbleweed-%ARCH%@%MACHINE%-%BUILD%.qcow2' - PUBLISH_PFLASH_VARS: 'opensuse-Tumbleweed-%ARCH%@%MACHINE%-%BUILD%-uefi-vars.qcow2' - description: >- - Maintainer: okurz@suse.de Test for installation of openQA itself. - To be used with "openqa" distri. Publishes an qcow2 image including the openQA installation - ready to run as an appliance. - - openqa_from_git: - testsuite: null - settings: - OPENQA_FROM_GIT: '1' - description: >- - Maintainer: okurz@suse.de Test for running openQA itself from git. To be used with "openqa" - distri. + - openqa_install+publish: + testsuite: null + settings: + PUBLISH_HDD_1: opensuse-Tumbleweed-%ARCH%@%MACHINE%-%BUILD%.qcow2 + PUBLISH_PFLASH_VARS: opensuse-Tumbleweed-%ARCH%@%MACHINE%-%BUILD%-uefi-vars.qcow2 + description: >- + Maintainer: okurz@suse.de Test for installation of openQA itself. + To be used with "openqa" distri. Publishes an qcow2 image including the openQA installation + ready to run as an appliance. + - openqa_from_git: + testsuite: null + settings: + OPENQA_FROM_GIT: '1' + description: >- + Maintainer: okurz@suse.de Test for running openQA itself from git. To be used with "openqa" + distri. diff --git a/t/data/job-templates/openqa.yaml b/t/data/job-templates/openqa.yaml index d0092987b4c..a69c4e6cd60 100644 --- a/t/data/job-templates/openqa.yaml +++ b/t/data/job-templates/openqa.yaml @@ -16,27 +16,27 @@ products: scenarios: x86_64: openqa-*-dev-x86_64: - - openqa_install+publish: - testsuite: 'empty' - settings: - PUBLISH_HDD_1: 'opensuse-Tumbleweed-%ARCH%@%MACHINE%-%BUILD%.qcow2' - PUBLISH_PFLASH_VARS: 'opensuse-Tumbleweed-%ARCH%@%MACHINE%-%BUILD%-uefi-vars.qcow2' - description: >- - Maintainer: okurz@suse.de Test for installation of openQA itself. - To be used with "openqa" distri. Publishes an qcow2 image including the openQA installation - ready to run as an appliance. - - openqa_from_git: - testsuite: 'empty' - settings: &common - OPENQA_FROM_GIT: '1' - description: >- - Maintainer: okurz@suse.de Test for running openQA itself from git. To be used with "openqa" - distri. - - openqa_from_git2: - testsuite: 'empty' - settings: - <<: *common - FOO: BAR - description: >- - Maintainer: okurz@suse.de Test for running openQA itself from git. To be used with "openqa" - distri. + - openqa_install+publish: + testsuite: empty + settings: + PUBLISH_HDD_1: opensuse-Tumbleweed-%ARCH%@%MACHINE%-%BUILD%.qcow2 + PUBLISH_PFLASH_VARS: opensuse-Tumbleweed-%ARCH%@%MACHINE%-%BUILD%-uefi-vars.qcow2 + description: >- + Maintainer: okurz@suse.de Test for installation of openQA itself. + To be used with "openqa" distri. Publishes an qcow2 image including the openQA installation + ready to run as an appliance. + - openqa_from_git: + testsuite: empty + settings: &common + OPENQA_FROM_GIT: '1' + description: >- + Maintainer: okurz@suse.de Test for running openQA itself from git. To be used with "openqa" + distri. + - openqa_from_git2: + testsuite: empty + settings: + <<: *common + FOO: BAR + description: >- + Maintainer: okurz@suse.de Test for running openQA itself from git. To be used with "openqa" + distri. diff --git a/t/data/job-templates/schema-invalid.yaml b/t/data/job-templates/schema-invalid.yaml index fbe76311531..c287c3aead0 100644 --- a/t/data/job-templates/schema-invalid.yaml +++ b/t/data/job-templates/schema-invalid.yaml @@ -4,67 +4,67 @@ description: openQA job template type: FOO additionalProperties: false required: -- products -- scenarios + - products + - scenarios properties: scenarios: description: The scenarios to run, i.e. lists of test suites per architecture and medium type: object additionalProperties: false patternProperties: - "^[a-z0-9_]+$": + ^[a-z0-9_]+$: type: object description: The architecture of the test suite(s) eg. ppc64le patternProperties: - "^.*$": + ^.*$: type: array description: The product to run the test suite(s) on items: anyOf: - - type: string - description: Name of a test suite name - - type: object - maxProperties: 1 - description: A test suite with machine and/or priority value specified, or a custom job template name if testsuite was specified - additionalProperties: false - patternProperties: - "^[A-Za-z\\s0-9_*.+-]+$": - type: object - additionalProperties: false - properties: - machine: - oneOf: - - type: string - - type: array - items: + - type: string + description: Name of a test suite name + - type: object + maxProperties: 1 + description: A test suite with machine and/or priority value specified, or a custom job template name if testsuite was specified + additionalProperties: false + patternProperties: + ^[A-Za-z\s0-9_*.+-]+$: + type: object + additionalProperties: false + properties: + machine: + oneOf: - type: string - priority: - type: number - settings: - type: object - description: Additional test variables to be set - additionalProperties: false - patternProperties: - "^[A-Z_+]+[A-Z0-9_]*$": - type: string - testsuite: - type: string - pattern: "^[A-Za-z\\s0-9_*.+-]+$" - description: The test suite this scenario is based on if a custom job template name was used - description: - type: string - description: The description of the job template + - type: array + items: + - type: string + priority: + type: number + settings: + type: object + description: Additional test variables to be set + additionalProperties: false + patternProperties: + ^[A-Z_+]+[A-Z0-9_]*$: + type: string + testsuite: + type: string + pattern: ^[A-Za-z\s0-9_*.+-]+$ + description: The test suite this scenario is based on if a custom job template name was used + description: + type: string + description: The description of the job template defaults: description: A set of architectures with default configurations type: object additionalProperties: false patternProperties: - "^[a-z0-9_]+$": + ^[a-z0-9_]+$: type: object description: The architecture to define a default configuration for eg. ppc64le required: - - machine - - priority + - machine + - priority additionalProperties: false properties: machine: @@ -72,7 +72,7 @@ properties: - type: string - type: array items: - - type: string + - type: string priority: type: number settings: @@ -80,13 +80,13 @@ properties: description: Additional test variables to be set additionalProperties: false patternProperties: - "^[A-Z_]+[A-Z0-9_]*$": + ^[A-Z_]+[A-Z0-9_]*$: type: string products: type: object additionalProperties: false patternProperties: - "^[A-Za-z0-9._*-]+$": + ^[A-Za-z0-9._*-]+$: type: object description: The name of a product (medium) required: