Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-05-09 21:09:11 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-05-09 21:09:11 +0300
commitd23f33082ad893fad172b17f1ce66bd847671d56 (patch)
treebdffb3f1a3f4855d2a9a7f8762f2812366c75a41 /scripts
parent3670ddd229b178c0a2e09a1466ddfd7fd2f7855d (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'scripts')
-rw-r--r--scripts/api/get_package_and_test_job.rb30
-rwxr-xr-xscripts/generate-failed-package-and-test-mr-message.rb16
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