gitlab-qa 11.3.0 → 12.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -1
- data/.gitlab-ci.yml +3 -1
- data/.rubocop.yml +13 -2
- data/.rubocop_todo.yml +57 -85
- data/Gemfile.lock +44 -36
- data/docs/running_against_remote_grid.md +7 -5
- data/gitlab-qa.gemspec +4 -2
- data/lib/gitlab/qa/component/base.rb +9 -9
- data/lib/gitlab/qa/component/gitaly.rb +2 -2
- data/lib/gitlab/qa/component/gitaly_cluster.rb +14 -8
- data/lib/gitlab/qa/component/gitlab.rb +34 -14
- data/lib/gitlab/qa/component/mail_hog.rb +1 -0
- data/lib/gitlab/qa/component/praefect.rb +2 -2
- data/lib/gitlab/qa/component/selenoid.rb +6 -4
- data/lib/gitlab/qa/component/specs.rb +5 -2
- data/lib/gitlab/qa/component/staging.rb +4 -4
- data/lib/gitlab/qa/component/telegraf.rb +2 -1
- data/lib/gitlab/qa/docker/engine.rb +6 -3
- data/lib/gitlab/qa/docker/volumes.rb +1 -1
- data/lib/gitlab/qa/release.rb +4 -4
- data/lib/gitlab/qa/runner.rb +10 -3
- data/lib/gitlab/qa/runtime/env.rb +21 -19
- data/lib/gitlab/qa/runtime/logger.rb +1 -1
- data/lib/gitlab/qa/runtime/omnibus_configuration.rb +1 -0
- data/lib/gitlab/qa/runtime/omnibus_configurations/object_storage_gcs.rb +2 -1
- data/lib/gitlab/qa/runtime/scenario.rb +1 -5
- data/lib/gitlab/qa/scenario/actable.rb +4 -4
- data/lib/gitlab/qa/scenario/test/instance/airgapped.rb +2 -2
- data/lib/gitlab/qa/scenario/test/instance/deployment_base.rb +2 -1
- data/lib/gitlab/qa/scenario/test/integration/group_saml.rb +1 -1
- data/lib/gitlab/qa/scenario/test/integration/ldap.rb +5 -6
- data/lib/gitlab/qa/scenario/test/integration/oauth.rb +13 -4
- data/lib/gitlab/qa/scenario/test/omnibus/update_from_previous.rb +1 -1
- data/lib/gitlab/qa/scenario/test/omnibus/upgrade.rb +1 -3
- data/lib/gitlab/qa/scenario/test/sanity/version.rb +1 -1
- data/lib/gitlab/qa/support/config_scripts.rb +1 -1
- data/lib/gitlab/qa/support/gitlab_version_info.rb +3 -5
- data/lib/gitlab/qa/support/shell_command.rb +1 -0
- data/lib/gitlab/qa/test_logger.rb +2 -2
- data/lib/gitlab/qa/version.rb +1 -1
- data/support/data/admin_access_token_seed.rb +1 -0
- data/support/data/license_usage_seed.rb +3 -1
- metadata +13 -8
- data/lib/gitlab/qa/runtime/omnibus_configurations/packages.rb +0 -17
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: afdb9bf3f2ac72d0c781f6d41453c850006761d74a7e3cc7a753b56e07b3bc71
         | 
| 4 | 
            +
              data.tar.gz: 1c87b39985c2a7816f5710eaefa5721bfcf21aed14c66eddd44fa95756eed809
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 7ec5fea822ba19ff238f741d8b1f9a1ad029ace4334f8dc75a0e8b89f1b231e30fec44bf9dc91c880cac048fc63ebf86b0c85223bf9245ebbcc363c8d87e61be
         | 
| 7 | 
            +
              data.tar.gz: 9e94728737df591d9aea64471ba3d2ac0a63c25f007405441b345b87814d4d0c6db5335851406ec5a97de71e3c9ffadf6255f4dfcafccd0ff9cde6b6182db576
         | 
    
        data/.gitignore
    CHANGED
    
    
    
        data/.gitlab-ci.yml
    CHANGED
    
    | @@ -20,7 +20,7 @@ stages: | |
| 20 20 | 
             
              - deploy
         | 
| 21 21 |  | 
| 22 22 | 
             
            default:
         | 
| 23 | 
            -
              image: ${CI_REGISTRY}/gitlab-org/gitlab-build-images/debian- | 
| 23 | 
            +
              image: ${CI_REGISTRY}/gitlab-org/gitlab-build-images/debian-${DEBIAN_VERSION}-ruby-${RUBY_VERSION}:bundler-2.3
         | 
| 24 24 | 
             
              tags:
         | 
| 25 25 | 
             
                - gitlab-org
         | 
| 26 26 | 
             
              cache:
         | 
| @@ -41,6 +41,7 @@ workflow: | |
| 41 41 | 
             
                - if: '$CI_PIPELINE_SOURCE == "web"'
         | 
| 42 42 |  | 
| 43 43 | 
             
            variables:
         | 
| 44 | 
            +
              DEBIAN_VERSION: bullseye
         | 
| 44 45 | 
             
              RUBY_VERSION: "3.0"
         | 
| 45 46 | 
             
              BUNDLE_PATH: vendor
         | 
| 46 47 | 
             
              BUNDLE_SILENCE_ROOT_WARNING: "true"
         | 
| @@ -133,6 +134,7 @@ package-and-test: | |
| 133 134 | 
             
              inherit:
         | 
| 134 135 | 
             
                variables:
         | 
| 135 136 | 
             
                  - RUBY_VERSION
         | 
| 137 | 
            +
                  - DEBIAN_VERSION
         | 
| 136 138 | 
             
              when: manual
         | 
| 137 139 | 
             
              trigger:
         | 
| 138 140 | 
             
                strategy: depend
         | 
    
        data/.rubocop.yml
    CHANGED
    
    | @@ -7,6 +7,11 @@ inherit_from: | |
| 7 7 | 
             
              - '.rubocop_todo.yml'
         | 
| 8 8 | 
             
              <% end %>
         | 
| 9 9 |  | 
| 10 | 
            +
            AllCops:
         | 
| 11 | 
            +
              NewCops: enable
         | 
| 12 | 
            +
              SuggestExtensions: false
         | 
| 13 | 
            +
              TargetRubyVersion: 3.0
         | 
| 14 | 
            +
             | 
| 10 15 | 
             
            Lint/HashCompareByIdentity:
         | 
| 11 16 | 
             
              Enabled: true
         | 
| 12 17 |  | 
| @@ -41,5 +46,11 @@ RSpec/MultipleMemoizedHelpers: | |
| 41 46 | 
             
              Enabled: false
         | 
| 42 47 |  | 
| 43 48 | 
             
            CodeReuse/ActiveRecord:
         | 
| 44 | 
            -
               | 
| 45 | 
            -
             | 
| 49 | 
            +
              Enabled: false
         | 
| 50 | 
            +
             | 
| 51 | 
            +
            Style/OperatorMethodCall:
         | 
| 52 | 
            +
              Enabled: false
         | 
| 53 | 
            +
             | 
| 54 | 
            +
            # disable for now as it might break automatic publish
         | 
| 55 | 
            +
            Gemspec/RequireMFA:
         | 
| 56 | 
            +
              Enabled: false
         | 
    
        data/.rubocop_todo.yml
    CHANGED
    
    | @@ -1,123 +1,95 @@ | |
| 1 1 | 
             
            # This configuration was generated by
         | 
| 2 | 
            -
            # `rubocop --auto-gen-config`
         | 
| 3 | 
            -
            # on  | 
| 2 | 
            +
            # `rubocop --auto-gen-config --no-exclude-limit`
         | 
| 3 | 
            +
            # on 2023-06-14 08:01:25 UTC using RuboCop version 1.43.0.
         | 
| 4 4 | 
             
            # The point is for the user to remove these configuration records
         | 
| 5 5 | 
             
            # one by one as the offenses are removed from the code base.
         | 
| 6 6 | 
             
            # Note that changes in the inspected code, or installation of new
         | 
| 7 7 | 
             
            # versions of RuboCop, may require this file to be generated again.
         | 
| 8 8 |  | 
| 9 | 
            -
            # Offense count: 199
         | 
| 10 | 
            -
            # Cop supports --auto-correct.
         | 
| 11 | 
            -
            CodeReuse/ActiveRecord:
         | 
| 12 | 
            -
              Enabled: false
         | 
| 13 | 
            -
             | 
| 14 | 
            -
            # Offense count: 1
         | 
| 15 | 
            -
            # Cop supports --auto-correct.
         | 
| 16 | 
            -
            Cop/LineBreakAroundConditionalBlock:
         | 
| 17 | 
            -
              Exclude:
         | 
| 18 | 
            -
                - 'lib/gitlab/qa/release.rb'
         | 
| 19 | 
            -
             | 
| 20 9 | 
             
            # Offense count: 1
         | 
| 21 | 
            -
             | 
| 22 | 
            -
            # Include: **/*.gemspec
         | 
| 23 | 
            -
            Gemspec/RequiredRubyVersion:
         | 
| 10 | 
            +
            Cop/AvoidReturnFromBlocks:
         | 
| 24 11 | 
             
              Exclude:
         | 
| 25 | 
            -
                - 'gitlab | 
| 12 | 
            +
                - 'lib/gitlab/qa/scenario/template.rb'
         | 
| 26 13 |  | 
| 27 14 | 
             
            # Offense count: 1
         | 
| 15 | 
            +
            # Configuration parameters: AllowedMethods.
         | 
| 16 | 
            +
            # AllowedMethods: enums
         | 
| 28 17 | 
             
            Lint/ConstantDefinitionInBlock:
         | 
| 29 18 | 
             
              Exclude:
         | 
| 30 19 | 
             
                - 'spec/gitlab/qa/scenario/test/instance/deployment_base_spec.rb'
         | 
| 31 20 |  | 
| 32 21 | 
             
            # Offense count: 5
         | 
| 33 | 
            -
             | 
| 22 | 
            +
            # Configuration parameters: AllowComments, AllowEmptyLambdas.
         | 
| 23 | 
            +
            Lint/EmptyBlock:
         | 
| 34 24 | 
             
              Exclude:
         | 
| 35 | 
            -
                - ' | 
| 25 | 
            +
                - 'spec/gitlab/qa/component/gitlab_spec.rb'
         | 
| 26 | 
            +
                - 'spec/gitlab/qa/docker/engine_spec.rb'
         | 
| 36 27 |  | 
| 37 | 
            -
            # Offense count:  | 
| 38 | 
            -
             | 
| 39 | 
            -
            Lint/RedundantCopDisableDirective:
         | 
| 28 | 
            +
            # Offense count: 3
         | 
| 29 | 
            +
            Lint/MixedRegexpCaptureTypes:
         | 
| 40 30 | 
             
              Exclude:
         | 
| 41 | 
            -
                - 'lib/gitlab/qa/ | 
| 42 | 
            -
                - 'lib/gitlab/qa/runtime/scenario.rb'
         | 
| 31 | 
            +
                - 'lib/gitlab/qa/release.rb'
         | 
| 43 32 |  | 
| 44 | 
            -
            # Offense count:  | 
| 45 | 
            -
            # Configuration parameters: IgnoredMethods.
         | 
| 33 | 
            +
            # Offense count: 22
         | 
| 34 | 
            +
            # Configuration parameters: AllowedMethods, AllowedPatterns, IgnoredMethods, CountRepeatedAttributes.
         | 
| 46 35 | 
             
            Metrics/AbcSize:
         | 
| 47 | 
            -
              Max: 60
         | 
| 48 | 
            -
              IgnoredMethods:
         | 
| 49 | 
            -
                - perform
         | 
| 50 | 
            -
             | 
| 51 | 
            -
            # Offense count: 1
         | 
| 52 | 
            -
            # Cop supports --auto-correct.
         | 
| 53 | 
            -
            # Configuration parameters: PreferredName.
         | 
| 54 | 
            -
            Naming/RescuedExceptionsVariableName:
         | 
| 55 36 | 
             
              Exclude:
         | 
| 56 | 
            -
                - 'lib/gitlab/qa/ | 
| 37 | 
            +
                - 'lib/gitlab/qa/scenario/test/instance/airgapped.rb'
         | 
| 38 | 
            +
                - 'lib/gitlab/qa/scenario/test/instance/image.rb'
         | 
| 39 | 
            +
                - 'lib/gitlab/qa/scenario/test/instance/relative_url.rb'
         | 
| 40 | 
            +
                - 'lib/gitlab/qa/scenario/test/instance/repository_storage.rb'
         | 
| 41 | 
            +
                - 'lib/gitlab/qa/scenario/test/integration/client_ssl.rb'
         | 
| 42 | 
            +
                - 'lib/gitlab/qa/scenario/test/integration/elasticsearch.rb'
         | 
| 43 | 
            +
                - 'lib/gitlab/qa/scenario/test/integration/geo.rb'
         | 
| 44 | 
            +
                - 'lib/gitlab/qa/scenario/test/integration/gitaly_cluster.rb'
         | 
| 45 | 
            +
                - 'lib/gitlab/qa/scenario/test/integration/gitlab_pages.rb'
         | 
| 46 | 
            +
                - 'lib/gitlab/qa/scenario/test/integration/integrations.rb'
         | 
| 47 | 
            +
                - 'lib/gitlab/qa/scenario/test/integration/jira.rb'
         | 
| 48 | 
            +
                - 'lib/gitlab/qa/scenario/test/integration/mattermost.rb'
         | 
| 49 | 
            +
                - 'lib/gitlab/qa/scenario/test/integration/metrics.rb'
         | 
| 50 | 
            +
                - 'lib/gitlab/qa/scenario/test/integration/mtls.rb'
         | 
| 51 | 
            +
                - 'lib/gitlab/qa/scenario/test/integration/oauth.rb'
         | 
| 52 | 
            +
                - 'lib/gitlab/qa/scenario/test/integration/opensearch.rb'
         | 
| 53 | 
            +
                - 'lib/gitlab/qa/scenario/test/integration/registry.rb'
         | 
| 54 | 
            +
                - 'lib/gitlab/qa/scenario/test/integration/registry_tls.rb'
         | 
| 55 | 
            +
                - 'lib/gitlab/qa/scenario/test/integration/registry_with_cdn.rb'
         | 
| 56 | 
            +
                - 'lib/gitlab/qa/scenario/test/integration/smtp.rb'
         | 
| 57 | 
            +
                - 'lib/gitlab/qa/scenario/test/integration/suggested_reviewer.rb'
         | 
| 58 | 
            +
                - 'lib/gitlab/qa/scenario/test/sanity/version.rb'
         | 
| 57 59 |  | 
| 58 | 
            -
            # Offense count:  | 
| 59 | 
            -
            #  | 
| 60 | 
            -
             | 
| 61 | 
            -
            RSpec/ExampleWording:
         | 
| 60 | 
            +
            # Offense count: 2
         | 
| 61 | 
            +
            # Configuration parameters: CheckIdentifiers, CheckConstants, CheckVariables, CheckStrings, CheckSymbols, CheckComments, CheckFilepaths, FlaggedTerms.
         | 
| 62 | 
            +
            Naming/InclusiveLanguage:
         | 
| 62 63 | 
             
              Exclude:
         | 
| 63 | 
            -
                - ' | 
| 64 | 
            +
                - 'lib/gitlab/qa/scenario/test/integration/geo.rb'
         | 
| 64 65 |  | 
| 65 66 | 
             
            # Offense count: 2
         | 
| 66 67 | 
             
            RSpec/LeakyConstantDeclaration:
         | 
| 67 68 | 
             
              Exclude:
         | 
| 68 69 | 
             
                - 'spec/gitlab/qa/scenario/test/instance/deployment_base_spec.rb'
         | 
| 69 70 |  | 
| 70 | 
            -
            # Offense count:  | 
| 71 | 
            -
            #  | 
| 72 | 
            -
             | 
| 71 | 
            +
            # Offense count: 33
         | 
| 72 | 
            +
            # Configuration parameters: IgnoreNameless, IgnoreSymbolicNames.
         | 
| 73 | 
            +
            RSpec/VerifiedDoubles:
         | 
| 73 74 | 
             
              Exclude:
         | 
| 74 | 
            -
                - ' | 
| 75 | 
            -
             | 
| 76 | 
            -
             | 
| 77 | 
            -
             | 
| 78 | 
            -
             | 
| 79 | 
            -
             | 
| 80 | 
            -
                - ' | 
| 81 | 
            -
             | 
| 82 | 
            -
             | 
| 83 | 
            -
            # Cop supports --auto-correct.
         | 
| 84 | 
            -
            Style/HashTransformation:
         | 
| 85 | 
            -
              Exclude:
         | 
| 86 | 
            -
                - 'lib/gitlab/qa/docker/volumes.rb'
         | 
| 87 | 
            -
             | 
| 88 | 
            -
            # Offense count: 8
         | 
| 89 | 
            -
            # Cop supports --auto-correct.
         | 
| 90 | 
            -
            Style/IfUnlessModifier:
         | 
| 91 | 
            -
              Exclude:
         | 
| 92 | 
            -
                - 'lib/gitlab/qa/runtime/env.rb'
         | 
| 93 | 
            -
                - 'lib/gitlab/qa/runtime/scenario.rb'
         | 
| 94 | 
            -
                - 'lib/gitlab/qa/scenario/test/omnibus/upgrade.rb'
         | 
| 75 | 
            +
                - 'spec/gitlab/qa/component/gitaly_cluster_spec.rb'
         | 
| 76 | 
            +
                - 'spec/gitlab/qa/component/gitaly_spec.rb'
         | 
| 77 | 
            +
                - 'spec/gitlab/qa/component/gitlab_spec.rb'
         | 
| 78 | 
            +
                - 'spec/gitlab/qa/component/praefect_spec.rb'
         | 
| 79 | 
            +
                - 'spec/gitlab/qa/component/selenoid_spec.rb'
         | 
| 80 | 
            +
                - 'spec/gitlab/qa/component/specs_spec.rb'
         | 
| 81 | 
            +
                - 'spec/gitlab/qa/docker/command_spec.rb'
         | 
| 82 | 
            +
                - 'spec/gitlab/qa/docker/engine_spec.rb'
         | 
| 83 | 
            +
                - 'spec/gitlab/qa/scenario/test/instance/deployment_base_spec.rb'
         | 
| 95 84 |  | 
| 96 85 | 
             
            # Offense count: 1
         | 
| 97 86 | 
             
            Style/MissingRespondToMissing:
         | 
| 98 87 | 
             
              Exclude:
         | 
| 99 88 | 
             
                - 'lib/gitlab/qa/runtime/scenario.rb'
         | 
| 100 89 |  | 
| 101 | 
            -
            # Offense count:  | 
| 102 | 
            -
            #  | 
| 103 | 
            -
            # Configuration parameters:  | 
| 104 | 
            -
            # SupportedStyles: literals, strict
         | 
| 105 | 
            -
            Style/MutableConstant:
         | 
| 106 | 
            -
              Exclude:
         | 
| 107 | 
            -
                - 'db/migrate/**/*'
         | 
| 108 | 
            -
                - 'db/post_migrate/**/*'
         | 
| 109 | 
            -
                - 'db/geo/migrate/**/*'
         | 
| 110 | 
            -
                - 'lib/gitlab/qa/release.rb'
         | 
| 111 | 
            -
             | 
| 112 | 
            -
            # Offense count: 9
         | 
| 113 | 
            -
            # Cop supports --auto-correct.
         | 
| 114 | 
            -
            Style/RedundantRegexpEscape:
         | 
| 115 | 
            -
              Exclude:
         | 
| 116 | 
            -
                - 'lib/gitlab/qa/release.rb'
         | 
| 117 | 
            -
             | 
| 118 | 
            -
            # Offense count: 191
         | 
| 119 | 
            -
            # Cop supports --auto-correct.
         | 
| 120 | 
            -
            # Configuration parameters: AutoCorrect, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
         | 
| 90 | 
            +
            # Offense count: 24
         | 
| 91 | 
            +
            # This cop supports safe autocorrection (--autocorrect).
         | 
| 92 | 
            +
            # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns, IgnoredPatterns.
         | 
| 121 93 | 
             
            # URISchemes: http, https
         | 
| 122 94 | 
             
            Layout/LineLength:
         | 
| 123 | 
            -
              Max:  | 
| 95 | 
            +
              Max: 172
         | 
    
        data/Gemfile.lock
    CHANGED
    
    | @@ -1,8 +1,8 @@ | |
| 1 1 | 
             
            PATH
         | 
| 2 2 | 
             
              remote: .
         | 
| 3 3 | 
             
              specs:
         | 
| 4 | 
            -
                gitlab-qa ( | 
| 5 | 
            -
                  activesupport ( | 
| 4 | 
            +
                gitlab-qa (12.1.0)
         | 
| 5 | 
            +
                  activesupport (>= 6.1, < 7.1)
         | 
| 6 6 | 
             
                  gitlab (~> 4.19)
         | 
| 7 7 | 
             
                  http (~> 5.0)
         | 
| 8 8 | 
             
                  nokogiri (~> 1.10)
         | 
| @@ -14,12 +14,11 @@ PATH | |
| 14 14 | 
             
            GEM
         | 
| 15 15 | 
             
              remote: https://rubygems.org/
         | 
| 16 16 | 
             
              specs:
         | 
| 17 | 
            -
                activesupport ( | 
| 17 | 
            +
                activesupport (7.0.5.1)
         | 
| 18 18 | 
             
                  concurrent-ruby (~> 1.0, >= 1.0.2)
         | 
| 19 19 | 
             
                  i18n (>= 1.6, < 2)
         | 
| 20 20 | 
             
                  minitest (>= 5.1)
         | 
| 21 21 | 
             
                  tzinfo (~> 2.0)
         | 
| 22 | 
            -
                  zeitwerk (~> 2.3)
         | 
| 23 22 | 
             
                addressable (2.8.1)
         | 
| 24 23 | 
             
                  public_suffix (>= 2.0.2, < 6.0)
         | 
| 25 24 | 
             
                ast (2.4.2)
         | 
| @@ -97,12 +96,12 @@ GEM | |
| 97 96 | 
             
                gitlab-dangerfiles (2.11.0)
         | 
| 98 97 | 
             
                  danger (>= 8.4.5)
         | 
| 99 98 | 
             
                  danger-gitlab (>= 8.0.0)
         | 
| 100 | 
            -
                gitlab-styles ( | 
| 101 | 
            -
                  rubocop (~>  | 
| 102 | 
            -
                  rubocop- | 
| 103 | 
            -
                  rubocop-performance (~> 1. | 
| 104 | 
            -
                  rubocop-rails (~> 2. | 
| 105 | 
            -
                  rubocop-rspec (~>  | 
| 99 | 
            +
                gitlab-styles (10.0.0)
         | 
| 100 | 
            +
                  rubocop (~> 1.43.0)
         | 
| 101 | 
            +
                  rubocop-graphql (~> 0.18)
         | 
| 102 | 
            +
                  rubocop-performance (~> 1.15)
         | 
| 103 | 
            +
                  rubocop-rails (~> 2.17)
         | 
| 104 | 
            +
                  rubocop-rspec (~> 2.18)
         | 
| 106 105 | 
             
                hashdiff (1.0.1)
         | 
| 107 106 | 
             
                http (5.1.1)
         | 
| 108 107 | 
             
                  addressable (~> 2.8)
         | 
| @@ -118,6 +117,7 @@ GEM | |
| 118 117 | 
             
                i18n (1.12.0)
         | 
| 119 118 | 
             
                  concurrent-ruby (~> 1.0)
         | 
| 120 119 | 
             
                jaro_winkler (1.5.4)
         | 
| 120 | 
            +
                json (2.6.3)
         | 
| 121 121 | 
             
                kramdown (2.4.0)
         | 
| 122 122 | 
             
                  rexml
         | 
| 123 123 | 
             
                kramdown-parser-gfm (1.1.0)
         | 
| @@ -144,16 +144,17 @@ GEM | |
| 144 144 | 
             
                  sawyer (~> 0.9)
         | 
| 145 145 | 
             
                open4 (1.3.4)
         | 
| 146 146 | 
             
                parallel (1.22.1)
         | 
| 147 | 
            -
                parser (3. | 
| 147 | 
            +
                parser (3.2.2.1)
         | 
| 148 148 | 
             
                  ast (~> 2.4.1)
         | 
| 149 149 | 
             
                pry (0.14.1)
         | 
| 150 150 | 
             
                  coderay (~> 1.1)
         | 
| 151 151 | 
             
                  method_source (~> 1.0)
         | 
| 152 152 | 
             
                public_suffix (5.0.0)
         | 
| 153 153 | 
             
                racc (1.6.0)
         | 
| 154 | 
            -
                rack (3.0. | 
| 154 | 
            +
                rack (3.0.7)
         | 
| 155 155 | 
             
                rainbow (3.1.1)
         | 
| 156 156 | 
             
                rake (13.0.6)
         | 
| 157 | 
            +
                rbs (2.8.4)
         | 
| 157 158 | 
             
                rchardet (1.8.0)
         | 
| 158 159 | 
             
                regexp_parser (2.6.1)
         | 
| 159 160 | 
             
                reverse_markdown (2.1.1)
         | 
| @@ -172,29 +173,35 @@ GEM | |
| 172 173 | 
             
                  diff-lcs (>= 1.2.0, < 2.0)
         | 
| 173 174 | 
             
                  rspec-support (~> 3.12.0)
         | 
| 174 175 | 
             
                rspec-support (3.12.0)
         | 
| 175 | 
            -
                rubocop ( | 
| 176 | 
            +
                rubocop (1.43.0)
         | 
| 177 | 
            +
                  json (~> 2.3)
         | 
| 176 178 | 
             
                  parallel (~> 1.10)
         | 
| 177 | 
            -
                  parser (>= 2. | 
| 179 | 
            +
                  parser (>= 3.2.0.0)
         | 
| 178 180 | 
             
                  rainbow (>= 2.2.2, < 4.0)
         | 
| 179 | 
            -
                  regexp_parser (>= 1.8)
         | 
| 180 | 
            -
                  rexml
         | 
| 181 | 
            -
                  rubocop-ast (>=  | 
| 181 | 
            +
                  regexp_parser (>= 1.8, < 3.0)
         | 
| 182 | 
            +
                  rexml (>= 3.2.5, < 4.0)
         | 
| 183 | 
            +
                  rubocop-ast (>= 1.24.1, < 2.0)
         | 
| 182 184 | 
             
                  ruby-progressbar (~> 1.7)
         | 
| 183 | 
            -
                  unicode-display_width (>=  | 
| 184 | 
            -
                rubocop-ast (1. | 
| 185 | 
            -
                  parser (>= 3. | 
| 186 | 
            -
                rubocop- | 
| 187 | 
            -
                  rubocop ( | 
| 188 | 
            -
                rubocop- | 
| 189 | 
            -
                  rubocop ( | 
| 185 | 
            +
                  unicode-display_width (>= 2.4.0, < 3.0)
         | 
| 186 | 
            +
                rubocop-ast (1.28.1)
         | 
| 187 | 
            +
                  parser (>= 3.2.1.0)
         | 
| 188 | 
            +
                rubocop-capybara (2.18.0)
         | 
| 189 | 
            +
                  rubocop (~> 1.41)
         | 
| 190 | 
            +
                rubocop-factory_bot (2.23.1)
         | 
| 191 | 
            +
                  rubocop (~> 1.33)
         | 
| 192 | 
            +
                rubocop-graphql (0.19.0)
         | 
| 193 | 
            +
                  rubocop (>= 0.87, < 2)
         | 
| 194 | 
            +
                rubocop-performance (1.18.0)
         | 
| 195 | 
            +
                  rubocop (>= 1.7.0, < 2.0)
         | 
| 190 196 | 
             
                  rubocop-ast (>= 0.4.0)
         | 
| 191 | 
            -
                rubocop-rails (2. | 
| 197 | 
            +
                rubocop-rails (2.19.1)
         | 
| 192 198 | 
             
                  activesupport (>= 4.2.0)
         | 
| 193 199 | 
             
                  rack (>= 1.1)
         | 
| 194 | 
            -
                  rubocop (>=  | 
| 195 | 
            -
                rubocop-rspec ( | 
| 196 | 
            -
                  rubocop (~>  | 
| 197 | 
            -
                  rubocop- | 
| 200 | 
            +
                  rubocop (>= 1.33.0, < 2.0)
         | 
| 201 | 
            +
                rubocop-rspec (2.22.0)
         | 
| 202 | 
            +
                  rubocop (~> 1.33)
         | 
| 203 | 
            +
                  rubocop-capybara (~> 2.17)
         | 
| 204 | 
            +
                  rubocop-factory_bot (~> 2.22)
         | 
| 198 205 | 
             
                ruby-progressbar (1.11.0)
         | 
| 199 206 | 
             
                ruby2_keywords (0.0.5)
         | 
| 200 207 | 
             
                sawyer (0.9.2)
         | 
| @@ -209,18 +216,19 @@ GEM | |
| 209 216 | 
             
                  simplecov (~> 0.19)
         | 
| 210 217 | 
             
                simplecov-html (0.12.3)
         | 
| 211 218 | 
             
                simplecov_json_formatter (0.1.4)
         | 
| 212 | 
            -
                solargraph (0. | 
| 219 | 
            +
                solargraph (0.49.0)
         | 
| 213 220 | 
             
                  backport (~> 1.2)
         | 
| 214 221 | 
             
                  benchmark
         | 
| 215 | 
            -
                  bundler ( | 
| 222 | 
            +
                  bundler (~> 2.0)
         | 
| 216 223 | 
             
                  diff-lcs (~> 1.4)
         | 
| 217 224 | 
             
                  e2mmap
         | 
| 218 225 | 
             
                  jaro_winkler (~> 1.5)
         | 
| 219 226 | 
             
                  kramdown (~> 2.3)
         | 
| 220 227 | 
             
                  kramdown-parser-gfm (~> 1.1)
         | 
| 221 228 | 
             
                  parser (~> 3.0)
         | 
| 222 | 
            -
                   | 
| 223 | 
            -
                   | 
| 229 | 
            +
                  rbs (~> 2.0)
         | 
| 230 | 
            +
                  reverse_markdown (~> 2.0)
         | 
| 231 | 
            +
                  rubocop (~> 1.38)
         | 
| 224 232 | 
             
                  thor (~> 1.0)
         | 
| 225 233 | 
             
                  tilt (~> 2.0)
         | 
| 226 234 | 
             
                  yard (~> 0.9, >= 0.9.24)
         | 
| @@ -235,7 +243,7 @@ GEM | |
| 235 243 | 
             
                unf (0.1.4)
         | 
| 236 244 | 
             
                  unf_ext
         | 
| 237 245 | 
             
                unf_ext (0.0.8.2)
         | 
| 238 | 
            -
                unicode-display_width ( | 
| 246 | 
            +
                unicode-display_width (2.4.2)
         | 
| 239 247 | 
             
                webmock (3.7.0)
         | 
| 240 248 | 
             
                  addressable (>= 2.3.6)
         | 
| 241 249 | 
             
                  crack (>= 0.3.2)
         | 
| @@ -252,7 +260,7 @@ DEPENDENCIES | |
| 252 260 | 
             
              climate_control (~> 1.0.1)
         | 
| 253 261 | 
             
              gitlab-dangerfiles (~> 2.11)
         | 
| 254 262 | 
             
              gitlab-qa!
         | 
| 255 | 
            -
              gitlab-styles (~>  | 
| 263 | 
            +
              gitlab-styles (~> 10)
         | 
| 256 264 | 
             
              lefthook (~> 1.2.6)
         | 
| 257 265 | 
             
              pry (~> 0.11)
         | 
| 258 266 | 
             
              rake (~> 13.0)
         | 
| @@ -264,4 +272,4 @@ DEPENDENCIES | |
| 264 272 | 
             
              webmock (= 3.7.0)
         | 
| 265 273 |  | 
| 266 274 | 
             
            BUNDLED WITH
         | 
| 267 | 
            -
               2.4. | 
| 275 | 
            +
               2.4.5
         | 
| @@ -9,17 +9,17 @@ I.e, if you have a Selenium server set up at http://localhost:4444 or if you hav | |
| 9 9 | 
             
            | Variable                  | Description                                                    | Default  | Example(s)                     |
         | 
| 10 10 | 
             
            |---------------------------|----------------------------------------------------------------|----------|--------------------------------|
         | 
| 11 11 | 
             
            | QA_BROWSER                | Browser to run against                                         | "chrome" | "chrome" "edge"                |
         | 
| 12 | 
            -
            | QA_SELENOID_BROWSER_VERSION | Version of browser to run against                              | "111.0"  | "latest" "111.0" "mobile-111.0"|
         | 
| 13 12 | 
             
            | QA_REMOTE_GRID_PROTOCOL   | Protocol to use                                                | "http"   | "http" "https"                 |
         | 
| 14 13 | 
             
            | QA_REMOTE_GRID            | Remote grid to run tests against                               |          | "localhost:3000" "provider:80" "selenoid:4444" |
         | 
| 15 14 | 
             
            | QA_LAYOUT                 | Used with Selenoid. Tells test nav to expect collapsed menus. "phone" expects collapsed top and left nav bars, "tablet" expects collapsed left nav bar only. |          | "phone", "tablet"              |
         | 
| 16 15 | 
             
            | SELENOID_DIRECTORY        | Used with Selenoid. Directory to save videos to                | "<host_artifacts_dir>/selenoid" |        |
         | 
| 17 16 | 
             
            | USE_SELENOID              | Used with Selenoid. Sets up selenoid containers.               | false    | false, true                    |
         | 
| 18 17 | 
             
            | QA_RECORD_VIDEO           | Used with Selenoid. Triggers video recording.                  | false    | false, true                    |
         | 
| 18 | 
            +
            | QA_SAVE_ALL_VIDEOS        | Used with Selenoid. Saves video for both passed and failed tests | false    | false, true                    |
         | 
| 19 19 | 
             
            | QA_SELENOID_BROWSER_IMAGE | Used with Selenoid. Sets the browser image to use for video recording. | "selenoid/chrome" | "selenoid/chrome", "registry.gitlab.com/gitlab-org/gitlab-qa/selenoid-chrome-gitlab" |
         | 
| 20 | 
            +
            | QA_SELENOID_BROWSER_VERSION | Used in conjunction with QA_SELENOID_BROWSER_IMAGE. Version of browser to run against.       | "111.0"  | "latest" "111.0" "mobile-111.0"|
         | 
| 20 21 | 
             
            | QA_VIDEO_RECORDER_IMAGE   | Used with Selenoid. Sets the video recorder image to use for video recording. | "presidenten/selenoid-manual-video-recorder" | "presidenten/selenoid-manual-video-recorder" |
         | 
| 21 22 | 
             
            | QA_VIDEO_RECORDER_VERSION | Used with Selenoid. Sets the video recorder image version to use for video recording. | "latest" | "latest"                     |
         | 
| 22 | 
            -
            | QA_RECORD_VIDEO           | Used with Selenoid. Triggers video recording.                  | false    | false, true                    |
         | 
| 23 23 | 
             
            | QA_REMOTE_GRID_USERNAME   | Used with Sauce Labs. Username to specify in the remote grid. "USERNAME@provider:80" |          | "gitlab-sl"                    |
         | 
| 24 24 | 
             
            | QA_REMOTE_GRID_ACCESS_KEY | Used with Sauce Labs. Key/Token paired with `QA_REMOTE_GRID_USERNAME` |          |                                |
         | 
| 25 25 | 
             
            | QA_REMOTE_TUNNEL_ID       | Used with Sauce Labs. Name of the remote tunnel to use         | "gitlab-sl_tunnel_id" |                                |
         | 
| @@ -31,7 +31,9 @@ Running directly against an environment like staging is not recommended because | |
| 31 31 |  | 
| 32 32 | 
             
            Available browsers are defined in [browsers.json](https://gitlab.com/gitlab-org/gitlab-qa/-/blob/master/fixtures/selenoid/browsers.json)
         | 
| 33 33 |  | 
| 34 | 
            -
            Failure videos are available as job artifacts in the selenoid directory.
         | 
| 34 | 
            +
            Failure videos are available as job artifacts in the selenoid/video directory and as attachments in the Allure report.
         | 
| 35 | 
            +
             | 
| 36 | 
            +
            Specs outside /browser_ui/ folder are not recorded, e.g. api specs.
         | 
| 35 37 |  | 
| 36 38 | 
             
            ### Add failure video recording to a pipeline for a non-live environment
         | 
| 37 39 |  | 
| @@ -56,9 +58,9 @@ QA_LAYOUT="phone" | |
| 56 58 | 
             
            QA_SELENOID_BROWSER_IMAGE="registry.gitlab.com/gitlab-org/gitlab-qa/selenoid-chrome-gitlab"
         | 
| 57 59 | 
             
            QA_SELENOID_BROWSER_VERSION=mobile-111.0
         | 
| 58 60 |  | 
| 59 | 
            -
            For now we  | 
| 61 | 
            +
            For now we have a limited number of images available for Chrome mobile browser testing, which can found in [gitlab-qa registry](https://gitlab.com/gitlab-org/gitlab-qa/container_registry/4079425)   
         | 
| 60 62 |  | 
| 61 | 
            -
            ## Testing with Sauce Labs
         | 
| 63 | 
            +
            ## Testing with Sauce Labs (deprecated)
         | 
| 62 64 |  | 
| 63 65 | 
             
            Running directly against an environment like staging is not recommended because test logs expose credentials. Therefore, it is best practice and the default to use a tunnel.
         | 
| 64 66 |  | 
    
        data/gitlab-qa.gemspec
    CHANGED
    
    | @@ -10,6 +10,8 @@ Gem::Specification.new do |spec| | |
| 10 10 | 
             
              spec.authors       = ['GitLab Quality']
         | 
| 11 11 | 
             
              spec.email         = ['gitlab-qa@gmail.com']
         | 
| 12 12 |  | 
| 13 | 
            +
              spec.required_ruby_version = ">= 3.0.0"
         | 
| 14 | 
            +
             | 
| 13 15 | 
             
              spec.summary       = 'Integration tests for GitLab'
         | 
| 14 16 | 
             
              spec.homepage      = 'http://about.gitlab.com/'
         | 
| 15 17 | 
             
              spec.license       = 'MIT'
         | 
| @@ -22,7 +24,7 @@ Gem::Specification.new do |spec| | |
| 22 24 |  | 
| 23 25 | 
             
              spec.add_development_dependency 'climate_control', '~> 1.0.1'
         | 
| 24 26 | 
             
              spec.add_development_dependency 'gitlab-dangerfiles', '~> 2.11'
         | 
| 25 | 
            -
              spec.add_development_dependency 'gitlab-styles', '~>  | 
| 27 | 
            +
              spec.add_development_dependency 'gitlab-styles', '~> 10'
         | 
| 26 28 | 
             
              spec.add_development_dependency 'lefthook', '~> 1.2.6'
         | 
| 27 29 | 
             
              spec.add_development_dependency 'pry', '~> 0.11'
         | 
| 28 30 | 
             
              spec.add_development_dependency 'rake', '~> 13.0'
         | 
| @@ -33,7 +35,7 @@ Gem::Specification.new do |spec| | |
| 33 35 | 
             
              spec.add_development_dependency 'timecop', '~> 0.9.5'
         | 
| 34 36 | 
             
              spec.add_development_dependency 'webmock', '3.7.0'
         | 
| 35 37 |  | 
| 36 | 
            -
              spec.add_runtime_dependency 'activesupport', ' | 
| 38 | 
            +
              spec.add_runtime_dependency 'activesupport', '>= 6.1', '< 7.1'
         | 
| 37 39 | 
             
              spec.add_runtime_dependency 'gitlab', '~> 4.19'
         | 
| 38 40 | 
             
              spec.add_runtime_dependency 'http', '~> 5.0'
         | 
| 39 41 | 
             
              spec.add_runtime_dependency 'nokogiri', '~> 1.10'
         | 
| @@ -11,13 +11,13 @@ module Gitlab | |
| 11 11 | 
             
                    attr_reader :docker
         | 
| 12 12 | 
             
                    attr_writer :name, :exec_commands
         | 
| 13 13 | 
             
                    attr_accessor :volumes,
         | 
| 14 | 
            -
             | 
| 15 | 
            -
             | 
| 16 | 
            -
             | 
| 17 | 
            -
             | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 20 | 
            -
             | 
| 14 | 
            +
                      :ports,
         | 
| 15 | 
            +
                      :network,
         | 
| 16 | 
            +
                      :network_aliases,
         | 
| 17 | 
            +
                      :environment,
         | 
| 18 | 
            +
                      :runner_network,
         | 
| 19 | 
            +
                      :airgapped_network,
         | 
| 20 | 
            +
                      :additional_hosts
         | 
| 21 21 |  | 
| 22 22 | 
             
                    def initialize
         | 
| 23 23 | 
             
                      @docker = Docker::Engine.new
         | 
| @@ -42,13 +42,13 @@ module Gitlab | |
| 42 42 | 
             
                    end
         | 
| 43 43 |  | 
| 44 44 | 
             
                    def image
         | 
| 45 | 
            -
                      return self.class.const_get( | 
| 45 | 
            +
                      return self.class.const_get(:DOCKER_IMAGE) if self.class.const_defined?(:DOCKER_IMAGE)
         | 
| 46 46 |  | 
| 47 47 | 
             
                      raise NotImplementedError, "#{self.class.name} must specify a docker image as DOCKER_IMAGE"
         | 
| 48 48 | 
             
                    end
         | 
| 49 49 |  | 
| 50 50 | 
             
                    def tag
         | 
| 51 | 
            -
                      return self.class.const_get( | 
| 51 | 
            +
                      return self.class.const_get(:DOCKER_IMAGE_TAG) if self.class.const_defined?(:DOCKER_IMAGE_TAG)
         | 
| 52 52 |  | 
| 53 53 | 
             
                      raise NotImplementedError, "#{self.class.name} must specify a docker image tag as DOCKER_IMAGE_TAG"
         | 
| 54 54 | 
             
                    end
         | 
| @@ -36,9 +36,9 @@ module Gitlab | |
| 36 36 |  | 
| 37 37 | 
             
                    def reconfigure
         | 
| 38 38 | 
             
                      setup_omnibus
         | 
| 39 | 
            -
                      @docker.attach(name) do |line,  | 
| 39 | 
            +
                      @docker.attach(name) do |line, _wait|
         | 
| 40 40 | 
             
                        # TODO, workaround which allows to detach from the container
         | 
| 41 | 
            -
                        break if  | 
| 41 | 
            +
                        break if line.include?('gitlab Reconfigured!')
         | 
| 42 42 | 
             
                      end
         | 
| 43 43 | 
             
                    end
         | 
| 44 44 |  | 
| @@ -6,11 +6,11 @@ module Gitlab | |
| 6 6 | 
             
                  class GitalyCluster
         | 
| 7 7 | 
             
                    class GitalyClusterConfig
         | 
| 8 8 | 
             
                      attr_accessor :gitlab_name, :network, :airgapped_network,
         | 
| 9 | 
            -
             | 
| 10 | 
            -
             | 
| 11 | 
            -
             | 
| 12 | 
            -
             | 
| 13 | 
            -
             | 
| 9 | 
            +
                        :praefect_node_name, :praefect_port, :praefect_ip,
         | 
| 10 | 
            +
                        :primary_node_name, :primary_node_port,
         | 
| 11 | 
            +
                        :secondary_node_name, :secondary_node_port,
         | 
| 12 | 
            +
                        :tertiary_node_name, :tertiary_node_port,
         | 
| 13 | 
            +
                        :database_node_name, :database_port
         | 
| 14 14 |  | 
| 15 15 | 
             
                      attr_reader :praefect_addr, :primary_node_addr, :secondary_node_addr, :tertiary_node_addr, :database_node_addr
         | 
| 16 16 |  | 
| @@ -79,9 +79,15 @@ module Gitlab | |
| 79 79 |  | 
| 80 80 | 
             
                      if parallel_gitaly
         | 
| 81 81 | 
             
                        threads = []
         | 
| 82 | 
            -
                        threads << Thread.new  | 
| 83 | 
            -
             | 
| 84 | 
            -
                         | 
| 82 | 
            +
                        threads << Thread.new do
         | 
| 83 | 
            +
                          @gitaly_primary_node = gitaly(config.primary_node_name, config.primary_node_port, release)
         | 
| 84 | 
            +
                        end
         | 
| 85 | 
            +
                        threads << Thread.new do
         | 
| 86 | 
            +
                          @gitaly_secondary_node = gitaly(config.secondary_node_name, config.secondary_node_port, release)
         | 
| 87 | 
            +
                        end
         | 
| 88 | 
            +
                        threads << Thread.new do
         | 
| 89 | 
            +
                          @gitaly_tertiary_node = gitaly(config.tertiary_node_name, config.tertiary_node_port, release)
         | 
| 90 | 
            +
                        end
         | 
| 85 91 | 
             
                        threads.each(&:join)
         | 
| 86 92 | 
             
                      else
         | 
| 87 93 | 
             
                        @gitaly_primary_node = gitaly(config.primary_node_name, config.primary_node_port, release)
         |