diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-05-09 21:09:11 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-05-09 21:09:11 +0300 |
commit | d23f33082ad893fad172b17f1ce66bd847671d56 (patch) | |
tree | bdffb3f1a3f4855d2a9a7f8762f2812366c75a41 /scripts | |
parent | 3670ddd229b178c0a2e09a1466ddfd7fd2f7855d (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/api/get_package_and_test_job.rb | 30 | ||||
-rwxr-xr-x | scripts/generate-failed-package-and-test-mr-message.rb | 16 |
2 files changed, 29 insertions, 17 deletions
diff --git a/scripts/api/get_package_and_test_job.rb b/scripts/api/get_package_and_test_job.rb index dbc29f754d0..e9430c5f107 100644 --- a/scripts/api/get_package_and_test_job.rb +++ b/scripts/api/get_package_and_test_job.rb @@ -1,10 +1,15 @@ # frozen_string_literal: true require 'gitlab' - require_relative 'default_options' class GetPackageAndTestJob + FAILED_STATUS = [ + 'failed', + 'passed with warnings', + 'canceled' + ].freeze + def initialize(options) @project = options.fetch(:project) @pipeline_id = options.fetch(:pipeline_id) @@ -21,19 +26,24 @@ class GetPackageAndTestJob end def execute - package_and_test_job = nil + package_and_test_bridge = client + .pipeline_bridges(project, pipeline_id, per_page: 100) + .auto_paginate + .find { |job| job.name.include?('package-and-test-ee') } + + return if package_and_test_bridge&.downstream_pipeline.nil? + + package_and_test_pipeline = client + .pipeline(project, package_and_test_bridge.downstream_pipeline.id) + + return if package_and_test_pipeline.nil? - client.pipeline_bridges(project, pipeline_id, scope: 'failed', per_page: 100).auto_paginate do |job| - if job['name'].include?('package-and-test') - package_and_test_job = job - break - end - end + status = package_and_test_pipeline.detailed_status - package_and_test_job + return package_and_test_pipeline if FAILED_STATUS.include?(status&.label) end private - attr_reader :project, :pipeline_id, :exclude_allowed_to_fail_jobs, :client + attr_reader :project, :pipeline_id, :client end diff --git a/scripts/generate-failed-package-and-test-mr-message.rb b/scripts/generate-failed-package-and-test-mr-message.rb index a53b393498c..c57f132d563 100755 --- a/scripts/generate-failed-package-and-test-mr-message.rb +++ b/scripts/generate-failed-package-and-test-mr-message.rb @@ -19,7 +19,7 @@ class GenerateFailedPackageAndTestMrMessage end def execute - return unless failed_package_and_test_job + return unless failed_package_and_test_pipeline add_discussion_to_mr end @@ -34,8 +34,8 @@ class GenerateFailedPackageAndTestMrMessage ).execute(content) end - def failed_package_and_test_job - @failed_package_and_test_job ||= GetPackageAndTestJob.new(API::DEFAULT_OPTIONS).execute + def failed_package_and_test_pipeline + @failed_package_and_test_pipeline ||= GetPackageAndTestJob.new(API::DEFAULT_OPTIONS).execute end def merge_request @@ -48,8 +48,10 @@ class GenerateFailedPackageAndTestMrMessage <<~MARKDOWN :warning: @#{author_username} The `e2e:package-and-test-ee` job has failed. - - Pipeline: #{pipeline_link} - - `package-and-test` pipeline: #{failed_package_and_test_job['web_url']} + - `e2e:package-and-test-ee` pipeline: #{failed_package_and_test_pipeline['web_url']} + + `e2e:package-and-test-ee` pipeline is allowed to fail due its [flakiness](#{package_and_test_link}). Failures should be + investigated to guarantee this backport complies with the Quality standards. Ping your team's associated Software Engineer in Test (SET) to confirm the failures are unrelated to the merge request. If there's no SET assigned, ask for assistance on the `#quality` Slack channel. @@ -60,8 +62,8 @@ class GenerateFailedPackageAndTestMrMessage merge_request['author']['username'] if merge_request end - def pipeline_link - "[##{ENV['CI_PIPELINE_ID']}](#{ENV['CI_PIPELINE_URL']})" + def package_and_test_link + "https://about.gitlab.com/handbook/engineering/quality/quality-engineering/test-metrics-dashboards/#package-and-test" end end |