From d8f61f6383a930a4b25455fd8ccf624fa313bb07 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Thu, 7 Sep 2023 00:09:45 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- .gitlab/ci/build-images.gitlab-ci.yml | 2 +- .gitlab/ci/qa-common/rules.gitlab-ci.yml | 15 + .gitlab/ci/rules.gitlab-ci.yml | 7 - .gitlab/ci/test-on-gdk/main.gitlab-ci.yml | 10 +- .../private/job_action_component.vue} | 2 +- .../private/job_links_layer.vue} | 6 +- .../private}/job_name_component.vue | 0 .../retry_mr_failed_job.mutation.graphql | 0 .../get_merge_request_pipelines.query.graphql | 0 .../components}/dag_annotations.vue | 0 .../dag => dag/components}/dag_graph.vue | 8 +- .../{components => }/dag/constants.js | 0 .../{components => }/dag/dag.vue | 15 +- .../{components => }/dag/drawing_utils.js | 0 .../queries/get_dag_vis_data.query.graphql | 0 .../{components => }/dag/interactions.js | 0 .../api.js => graph/api_utils.js} | 2 +- .../components}/graph_component.vue | 12 +- .../components}/graph_view_selector.vue | 2 +- .../components}/job_group_dropdown.vue | 4 +- .../graph => graph/components}/job_item.vue | 8 +- .../components}/linked_graph_wrapper.vue | 0 .../components}/linked_pipeline.vue | 4 +- .../components}/linked_pipelines_column.vue | 8 +- .../components}/links_inner.vue | 7 +- .../components/root_graph_layout.vue} | 0 .../components}/stage_column_component.vue | 12 +- .../{components => }/graph/constants.js | 0 .../graph/graph_component_wrapper.vue | 12 +- .../dismiss_pipeline_notification.graphql | 0 .../{components => }/graph/perf_utils.js | 2 +- .../{components => }/graph/utils.js | 7 +- .../get_pipeline_header_data.query.graphql | 0 .../pipeline_details_header.vue | 4 +- .../components}/failed_jobs_table.vue | 2 +- .../{components => }/jobs/failed_jobs_app.vue | 4 +- .../retry_failed_job.mutation.graphql | 0 .../queries/get_failed_jobs.query.graphql | 0 .../queries/get_pipeline_jobs.query.graphql | 0 .../{components => }/jobs/jobs_app.vue | 2 +- .../mixins/stage_column_mixin.js | 14 - .../pipeline_details_header.js | 2 +- .../ci/pipeline_details/pipeline_tabs.js | 5 +- .../ci/pipeline_details/pipelines_index.js | 2 +- .../components}/nav_controls.vue | 0 .../components}/pipeline_labels.vue | 2 +- .../components}/pipeline_multi_actions.vue | 0 .../components}/pipeline_operations.vue | 2 +- .../components}/pipeline_stop_modal.vue | 0 .../components}/pipeline_triggerer.vue | 0 .../components}/pipeline_url.vue | 0 .../components}/pipelines_artifacts.vue | 0 .../components}/pipelines_filtered_search.vue | 10 +- .../components}/pipelines_manual_actions.vue | 2 +- .../components}/pipelines_status_badge.vue | 0 .../components}/pipelines_table.vue | 6 +- .../components}/time_ago.vue | 0 .../empty_state/ci_templates.vue | 0 .../empty_state/ios_templates.vue | 0 .../empty_state/no_ci_empty_state.vue} | 4 +- .../empty_state/pipelines_ci_templates.vue | 0 .../failure_widget/failed_job_details.vue | 4 +- .../failure_widget/failed_jobs_list.vue | 4 +- .../pipeline_failed_jobs_widget.vue | 0 .../pipelines_list/failure_widget/utils.js | 0 .../get_pipeline_actions.query.graphql | 0 .../get_pipeline_failed_jobs.query.graphql | 0 ...t_pipeline_failed_jobs_count.query.graphql | 0 .../pipelines_list/pipelines.vue | 20 +- .../pipelines_list/tokens/constants.js | 0 .../tokens/pipeline_branch_name_token.vue | 2 +- .../tokens/pipeline_source_token.vue | 2 +- .../tokens/pipeline_status_token.vue | 0 .../tokens/pipeline_tag_name_token.vue | 2 +- .../tokens/pipeline_trigger_author_token.vue | 2 +- .../javascripts/ci/pipeline_details/routes.js | 10 +- .../{components => tabs}/pipeline_tabs.vue | 0 .../test_reports/empty_state.vue | 0 .../test_reports/test_case_details.vue | 0 .../test_reports/test_reports.vue | 0 .../test_reports/test_suite_table.vue | 0 .../test_reports/test_summary.vue | 2 +- .../test_reports/test_summary_table.vue | 0 .../graph_shared => utils}/drawing_utils.js | 0 .../{utils.js => utils/index.js} | 19 +- .../{components => utils}/parsing_utils.js | 4 +- .../{components => utils}/unwrapping_utils.js | 2 +- .../components/graph}/job_pill.vue | 0 .../components/graph}/pipeline_graph.vue | 4 +- .../components/graph}/stage_name.vue | 0 .../header/pipeline_editor_mini_graph.vue | 4 +- .../components/header/pipeline_status.vue | 7 +- .../components/pipeline_editor_tabs.vue | 2 +- .../pipeline_editor/pipeline_editor_app.vue | 2 +- .../accessors/linked_pipelines_accessors.js | 0 .../queries/get_pipeline_stage.query.graphql | 0 .../queries/get_pipeline_stages.query.graphql | 0 .../pipeline_mini_graph/job_item.vue | 0 .../pipeline_mini_graph/legacy_job_item.vue | 8 +- .../legacy_pipeline_mini_graph.vue | 0 .../legacy_pipeline_stage.vue | 2 +- .../linked_pipelines_mini_list.vue | 0 .../pipeline_mini_graph.vue | 9 +- .../pipeline_mini_graph/pipeline_stage.vue | 7 +- .../pipeline_mini_graph/pipeline_stages.vue | 0 app/assets/javascripts/ci/utils.js | 17 + .../commit/pipelines/pipelines_table.vue | 2 +- .../pipelines/pipelines_table_wrapper.vue | 4 +- .../commit_box_pipeline_mini_graph.vue | 13 +- .../components/commit_box_pipeline_status.vue | 5 +- .../components/mr_widget_pipeline.vue | 6 +- .../extensions/test_report/index.vue | 2 +- ...ackground_migration_failed_jobs_metric.yml | 5 +- ...ckground_migration_failed_jobs_metric.json | 21 - doc/ci/environments/kubernetes_dashboard.md | 14 +- doc/development/activitypub/actor.md | 134 +++++++ doc/development/activitypub/index.md | 207 ++++++++++ .../service_discovery/sampler.rb | 2 +- .../email/message/in_product_marketing.rb | 18 - .../in_product_marketing/admin_verify.rb | 47 --- .../message/in_product_marketing/base.rb | 132 ------- .../message/in_product_marketing/create.rb | 105 ----- .../message/in_product_marketing/helper.rb | 9 - .../message/in_product_marketing/team.rb | 84 ---- .../in_product_marketing/team_short.rb | 47 --- .../message/in_product_marketing/trial.rb | 79 ---- .../in_product_marketing/trial_short.rb | 47 --- .../message/in_product_marketing/verify.rb | 97 ----- ...background_migration_failed_jobs_metric.rb | 34 -- locale/gitlab.pot | 360 ------------------ package.json | 1 + qa/gdk/Dockerfile.gdk | 93 ++--- qa/gdk/Dockerfile.gdk.dockerignore | 17 + qa/qa/page/project/pipeline/index.rb | 10 +- qa/qa/page/project/pipeline/show.rb | 10 +- scripts/build_gdk_image | 49 +-- scripts/frontend/preinstall.mjs | 59 +++ scripts/frontend/webpack_dev_server.js | 14 +- .../consumer/resources/graphql/pipelines.js | 2 +- .../specs/project/pipelines/show.spec.js | 2 +- .../header/pipeline_editor_mini_graph_spec.js | 2 +- .../components/header/pipeline_status_spec.js | 13 +- .../components/pipeline_editor_tabs_spec.js | 2 +- spec/frontend/ci/pipeline_editor/mock_data.js | 2 +- .../ci/pipeline_schedules/mock_data.js | 2 +- .../commit_box_pipeline_mini_graph_spec.js | 6 +- .../pipelines/pipelines_table_wrapper_spec.js | 2 +- spec/frontend/fixtures/pipeline_header.rb | 2 +- spec/frontend/fixtures/pipelines.rb | 2 +- .../components/dag/dag_annotations_spec.js | 2 +- .../components/dag/dag_graph_spec.js | 14 +- .../pipelines/components/dag/dag_spec.js | 12 +- .../components/dag/drawing_utils_spec.js | 4 +- .../components/jobs/failed_jobs_app_spec.js | 6 +- .../components/jobs/failed_jobs_table_spec.js | 4 +- .../components/jobs/jobs_app_spec.js | 4 +- .../pipeline_mini_graph/job_item_spec.js | 2 +- .../legacy_pipeline_mini_graph_spec.js | 4 +- .../legacy_pipeline_stage_spec.js | 2 +- .../linked_pipelines_mini_list_spec.js | 2 +- .../pipeline_mini_graph_spec.js | 6 +- .../pipeline_stage_spec.js | 4 +- .../pipeline_stages_spec.js | 4 +- .../components/pipeline_tabs_spec.js | 2 +- .../pipelines_filtered_search_spec.js | 2 +- .../empty_state/ci_templates_spec.js | 2 +- .../empty_state/ios_templates_spec.js | 4 +- .../pipelines_ci_templates_spec.js | 4 +- .../failure_widget/failed_job_details_spec.js | 6 +- .../failure_widget/failed_jobs_list_spec.js | 8 +- .../pipeline_failed_jobs_widget_spec.js | 4 +- .../failure_widget/utils_spec.js | 2 +- ...al_spec.js => pipeline_stop_modal_spec.js} | 2 +- spec/frontend/pipelines/empty_state_spec.js | 6 +- .../pipelines/graph/action_component_spec.js | 2 +- .../pipelines/graph/graph_component_spec.js | 14 +- .../graph/graph_component_wrapper_spec.js | 18 +- .../graph/graph_view_selector_spec.js | 4 +- .../graph/job_group_dropdown_spec.js | 2 +- .../frontend/pipelines/graph/job_item_spec.js | 4 +- .../graph/job_name_component_spec.js | 2 +- .../pipelines/graph/linked_pipeline_spec.js | 8 +- .../graph/linked_pipelines_column_spec.js | 10 +- spec/frontend/pipelines/graph/mock_data.js | 8 +- .../graph/stage_column_component_spec.js | 6 +- .../graph_shared/links_inner_spec.js | 4 +- .../graph_shared/links_layer_spec.js | 4 +- spec/frontend/pipelines/nav_controls_spec.js | 2 +- .../pipelines/pipeline_details_header_spec.js | 4 +- .../pipeline_graph/pipeline_graph_spec.js | 10 +- .../pipelines/pipeline_labels_spec.js | 2 +- .../pipelines/pipeline_multi_actions_spec.js | 2 +- .../pipelines/pipeline_operations_spec.js | 6 +- .../pipelines/pipeline_triggerer_spec.js | 2 +- spec/frontend/pipelines/pipeline_url_spec.js | 2 +- .../pipelines/pipelines_artifacts_spec.js | 2 +- .../pipelines_manual_actions_spec.js | 4 +- spec/frontend/pipelines/pipelines_spec.js | 8 +- .../pipelines/pipelines_table_spec.js | 14 +- .../test_reports/empty_state_spec.js | 2 +- .../test_reports/test_case_details_spec.js | 2 +- .../test_reports/test_reports_spec.js | 8 +- .../test_reports/test_suite_table_spec.js | 4 +- .../test_reports/test_summary_spec.js | 2 +- .../test_reports/test_summary_table_spec.js | 2 +- spec/frontend/pipelines/time_ago_spec.js | 2 +- .../tokens/pipeline_branch_name_token_spec.js | 2 +- .../tokens/pipeline_source_token_spec.js | 4 +- .../tokens/pipeline_status_token_spec.js | 2 +- .../tokens/pipeline_tag_name_token_spec.js | 2 +- .../pipeline_trigger_author_token_spec.js | 2 +- .../pipelines/unwrapping_utils_spec.js | 2 +- spec/frontend/pipelines/utils_spec.js | 4 +- .../components/mr_widget_pipeline_spec.js | 2 +- .../extensions/test_report/index_spec.js | 2 +- .../in_product_marketing/admin_verify_spec.rb | 45 --- .../message/in_product_marketing/base_spec.rb | 100 ----- .../in_product_marketing/create_spec.rb | 28 -- .../in_product_marketing/team_short_spec.rb | 47 --- .../message/in_product_marketing/team_spec.rb | 82 ---- .../in_product_marketing/trial_short_spec.rb | 45 --- .../in_product_marketing/trial_spec.rb | 48 --- .../in_product_marketing/verify_spec.rb | 54 --- .../message/in_product_marketing_spec.rb | 35 -- ...round_migration_failed_jobs_metric_spec.rb | 40 -- 225 files changed, 846 insertions(+), 2083 deletions(-) rename app/assets/javascripts/ci/{pipeline_details/components/jobs_shared/action_component.vue => common/private/job_action_component.vue} (98%) rename app/assets/javascripts/ci/{pipeline_details/components/graph_shared/links_layer.vue => common/private/job_links_layer.vue} (88%) rename app/assets/javascripts/ci/{pipeline_details/components/jobs_shared => common/private}/job_name_component.vue (100%) rename app/assets/javascripts/ci/{pipeline_details => merge_requests}/graphql/mutations/retry_mr_failed_job.mutation.graphql (100%) rename app/assets/javascripts/ci/{pipeline_details => merge_requests}/graphql/queries/get_merge_request_pipelines.query.graphql (100%) rename app/assets/javascripts/ci/pipeline_details/{components/dag => dag/components}/dag_annotations.vue (100%) rename app/assets/javascripts/ci/pipeline_details/{components/dag => dag/components}/dag_graph.vue (98%) rename app/assets/javascripts/ci/pipeline_details/{components => }/dag/constants.js (100%) rename app/assets/javascripts/ci/pipeline_details/{components => }/dag/dag.vue (94%) rename app/assets/javascripts/ci/pipeline_details/{components => }/dag/drawing_utils.js (100%) rename app/assets/javascripts/ci/pipeline_details/{ => dag}/graphql/queries/get_dag_vis_data.query.graphql (100%) rename app/assets/javascripts/ci/pipeline_details/{components => }/dag/interactions.js (100%) rename app/assets/javascripts/ci/pipeline_details/{components/graph_shared/api.js => graph/api_utils.js} (86%) rename app/assets/javascripts/ci/pipeline_details/{components/graph => graph/components}/graph_component.vue (96%) rename app/assets/javascripts/ci/pipeline_details/{components/graph => graph/components}/graph_view_selector.vue (98%) rename app/assets/javascripts/ci/pipeline_details/{components/graph => graph/components}/job_group_dropdown.vue (96%) rename app/assets/javascripts/ci/pipeline_details/{components/graph => graph/components}/job_item.vue (97%) rename app/assets/javascripts/ci/pipeline_details/{components/graph_shared => graph/components}/linked_graph_wrapper.vue (100%) rename app/assets/javascripts/ci/pipeline_details/{components/graph => graph/components}/linked_pipeline.vue (98%) rename app/assets/javascripts/ci/pipeline_details/{components/graph => graph/components}/linked_pipelines_column.vue (98%) rename app/assets/javascripts/ci/pipeline_details/{components/graph_shared => graph/components}/links_inner.vue (93%) rename app/assets/javascripts/ci/pipeline_details/{components/graph_shared/main_graph_wrapper.vue => graph/components/root_graph_layout.vue} (100%) rename app/assets/javascripts/ci/pipeline_details/{components/graph => graph/components}/stage_column_component.vue (94%) rename app/assets/javascripts/ci/pipeline_details/{components => }/graph/constants.js (100%) rename app/assets/javascripts/ci/pipeline_details/{components => }/graph/graph_component_wrapper.vue (95%) rename app/assets/javascripts/ci/pipeline_details/{ => graph}/graphql/mutations/dismiss_pipeline_notification.graphql (100%) rename app/assets/javascripts/ci/pipeline_details/{components => }/graph/perf_utils.js (96%) rename app/assets/javascripts/ci/pipeline_details/{components => }/graph/utils.js (93%) rename app/assets/javascripts/ci/pipeline_details/{ => header}/graphql/queries/get_pipeline_header_data.query.graphql (100%) rename app/assets/javascripts/ci/pipeline_details/{components => header}/pipeline_details_header.vue (99%) rename app/assets/javascripts/ci/pipeline_details/{components/jobs => jobs/components}/failed_jobs_table.vue (97%) rename app/assets/javascripts/ci/pipeline_details/{components => }/jobs/failed_jobs_app.vue (89%) rename app/assets/javascripts/ci/pipeline_details/{ => jobs}/graphql/mutations/retry_failed_job.mutation.graphql (100%) rename app/assets/javascripts/ci/pipeline_details/{ => jobs}/graphql/queries/get_failed_jobs.query.graphql (100%) rename app/assets/javascripts/ci/pipeline_details/{ => jobs}/graphql/queries/get_pipeline_jobs.query.graphql (100%) rename app/assets/javascripts/ci/pipeline_details/{components => }/jobs/jobs_app.vue (97%) delete mode 100644 app/assets/javascripts/ci/pipeline_details/mixins/stage_column_mixin.js rename app/assets/javascripts/ci/pipeline_details/{components/pipelines_list => pipelines_list/components}/nav_controls.vue (100%) rename app/assets/javascripts/ci/pipeline_details/{components/pipelines_list => pipelines_list/components}/pipeline_labels.vue (98%) rename app/assets/javascripts/ci/pipeline_details/{components/pipelines_list => pipelines_list/components}/pipeline_multi_actions.vue (100%) rename app/assets/javascripts/ci/pipeline_details/{components/pipelines_list => pipelines_list/components}/pipeline_operations.vue (100%) rename app/assets/javascripts/ci/pipeline_details/{components/pipelines_list => pipelines_list/components}/pipeline_stop_modal.vue (100%) rename app/assets/javascripts/ci/pipeline_details/{components/pipelines_list => pipelines_list/components}/pipeline_triggerer.vue (100%) rename app/assets/javascripts/ci/pipeline_details/{components/pipelines_list => pipelines_list/components}/pipeline_url.vue (100%) rename app/assets/javascripts/ci/pipeline_details/{components/pipelines_list => pipelines_list/components}/pipelines_artifacts.vue (100%) rename app/assets/javascripts/ci/pipeline_details/{components/pipelines_list => pipelines_list/components}/pipelines_filtered_search.vue (89%) rename app/assets/javascripts/ci/pipeline_details/{components/pipelines_list => pipelines_list/components}/pipelines_manual_actions.vue (97%) rename app/assets/javascripts/ci/pipeline_details/{components/pipelines_list => pipelines_list/components}/pipelines_status_badge.vue (100%) rename app/assets/javascripts/ci/pipeline_details/{components/pipelines_list => pipelines_list/components}/pipelines_table.vue (95%) rename app/assets/javascripts/ci/pipeline_details/{components/pipelines_list => pipelines_list/components}/time_ago.vue (100%) rename app/assets/javascripts/ci/pipeline_details/{components => }/pipelines_list/empty_state/ci_templates.vue (100%) rename app/assets/javascripts/ci/pipeline_details/{components => }/pipelines_list/empty_state/ios_templates.vue (100%) rename app/assets/javascripts/ci/pipeline_details/{components/pipelines_list/empty_state.vue => pipelines_list/empty_state/no_ci_empty_state.vue} (89%) rename app/assets/javascripts/ci/pipeline_details/{components => }/pipelines_list/empty_state/pipelines_ci_templates.vue (100%) rename app/assets/javascripts/ci/pipeline_details/{components => }/pipelines_list/failure_widget/failed_job_details.vue (96%) rename app/assets/javascripts/ci/pipeline_details/{components => }/pipelines_list/failure_widget/failed_jobs_list.vue (95%) rename app/assets/javascripts/ci/pipeline_details/{components => }/pipelines_list/failure_widget/pipeline_failed_jobs_widget.vue (100%) rename app/assets/javascripts/ci/pipeline_details/{components => }/pipelines_list/failure_widget/utils.js (100%) rename app/assets/javascripts/ci/pipeline_details/{ => pipelines_list}/graphql/queries/get_pipeline_actions.query.graphql (100%) rename app/assets/javascripts/ci/pipeline_details/{ => pipelines_list}/graphql/queries/get_pipeline_failed_jobs.query.graphql (100%) rename app/assets/javascripts/ci/pipeline_details/{ => pipelines_list}/graphql/queries/get_pipeline_failed_jobs_count.query.graphql (100%) rename app/assets/javascripts/ci/pipeline_details/{components => }/pipelines_list/pipelines.vue (95%) rename app/assets/javascripts/ci/pipeline_details/{components => }/pipelines_list/tokens/constants.js (100%) rename app/assets/javascripts/ci/pipeline_details/{components => }/pipelines_list/tokens/pipeline_branch_name_token.vue (98%) rename app/assets/javascripts/ci/pipeline_details/{components => }/pipelines_list/tokens/pipeline_source_token.vue (96%) rename app/assets/javascripts/ci/pipeline_details/{components => }/pipelines_list/tokens/pipeline_status_token.vue (100%) rename app/assets/javascripts/ci/pipeline_details/{components => }/pipelines_list/tokens/pipeline_tag_name_token.vue (98%) rename app/assets/javascripts/ci/pipeline_details/{components => }/pipelines_list/tokens/pipeline_trigger_author_token.vue (98%) rename app/assets/javascripts/ci/pipeline_details/{components => tabs}/pipeline_tabs.vue (100%) rename app/assets/javascripts/ci/pipeline_details/{components => }/test_reports/empty_state.vue (100%) rename app/assets/javascripts/ci/pipeline_details/{components => }/test_reports/test_case_details.vue (100%) rename app/assets/javascripts/ci/pipeline_details/{components => }/test_reports/test_reports.vue (100%) rename app/assets/javascripts/ci/pipeline_details/{components => }/test_reports/test_suite_table.vue (100%) rename app/assets/javascripts/ci/pipeline_details/{components => }/test_reports/test_summary.vue (97%) rename app/assets/javascripts/ci/pipeline_details/{components => }/test_reports/test_summary_table.vue (100%) rename app/assets/javascripts/ci/pipeline_details/{components/graph_shared => utils}/drawing_utils.js (100%) rename app/assets/javascripts/ci/pipeline_details/{utils.js => utils/index.js} (89%) rename app/assets/javascripts/ci/pipeline_details/{components => utils}/parsing_utils.js (98%) rename app/assets/javascripts/ci/pipeline_details/{components => utils}/unwrapping_utils.js (97%) rename app/assets/javascripts/ci/{pipeline_details/components/pipeline_graph => pipeline_editor/components/graph}/job_pill.vue (100%) rename app/assets/javascripts/ci/{pipeline_details/components/pipeline_graph => pipeline_editor/components/graph}/pipeline_graph.vue (97%) rename app/assets/javascripts/ci/{pipeline_details/components/pipeline_graph => pipeline_editor/components/graph}/stage_name.vue (100%) rename app/assets/javascripts/ci/{pipeline_details/components => }/pipeline_mini_graph/accessors/linked_pipelines_accessors.js (100%) rename app/assets/javascripts/ci/{pipeline_details => pipeline_mini_graph}/graphql/queries/get_pipeline_stage.query.graphql (100%) rename app/assets/javascripts/ci/{pipeline_details => pipeline_mini_graph}/graphql/queries/get_pipeline_stages.query.graphql (100%) rename app/assets/javascripts/ci/{pipeline_details/components => }/pipeline_mini_graph/job_item.vue (100%) rename app/assets/javascripts/ci/{pipeline_details/components => }/pipeline_mini_graph/legacy_job_item.vue (94%) rename app/assets/javascripts/ci/{pipeline_details/components => }/pipeline_mini_graph/legacy_pipeline_mini_graph.vue (100%) rename app/assets/javascripts/ci/{pipeline_details/components => }/pipeline_mini_graph/legacy_pipeline_stage.vue (98%) rename app/assets/javascripts/ci/{pipeline_details/components => }/pipeline_mini_graph/linked_pipelines_mini_list.vue (100%) rename app/assets/javascripts/ci/{pipeline_details/components => }/pipeline_mini_graph/pipeline_mini_graph.vue (93%) rename app/assets/javascripts/ci/{pipeline_details/components => }/pipeline_mini_graph/pipeline_stage.vue (87%) rename app/assets/javascripts/ci/{pipeline_details/components => }/pipeline_mini_graph/pipeline_stages.vue (100%) create mode 100644 app/assets/javascripts/ci/utils.js delete mode 100644 config/metrics/objects_schemas/batched_background_migration_failed_jobs_metric.json create mode 100644 doc/development/activitypub/actor.md create mode 100644 doc/development/activitypub/index.md delete mode 100644 lib/gitlab/email/message/in_product_marketing.rb delete mode 100644 lib/gitlab/email/message/in_product_marketing/admin_verify.rb delete mode 100644 lib/gitlab/email/message/in_product_marketing/base.rb delete mode 100644 lib/gitlab/email/message/in_product_marketing/create.rb delete mode 100644 lib/gitlab/email/message/in_product_marketing/team.rb delete mode 100644 lib/gitlab/email/message/in_product_marketing/team_short.rb delete mode 100644 lib/gitlab/email/message/in_product_marketing/trial.rb delete mode 100644 lib/gitlab/email/message/in_product_marketing/trial_short.rb delete mode 100644 lib/gitlab/email/message/in_product_marketing/verify.rb delete mode 100644 lib/gitlab/usage/metrics/instrumentations/batched_background_migration_failed_jobs_metric.rb create mode 100644 scripts/frontend/preinstall.mjs rename spec/frontend/pipelines/components/pipelines_list/{pipieline_stop_modal_spec.js => pipeline_stop_modal_spec.js} (85%) delete mode 100644 spec/lib/gitlab/email/message/in_product_marketing/admin_verify_spec.rb delete mode 100644 spec/lib/gitlab/email/message/in_product_marketing/base_spec.rb delete mode 100644 spec/lib/gitlab/email/message/in_product_marketing/create_spec.rb delete mode 100644 spec/lib/gitlab/email/message/in_product_marketing/team_short_spec.rb delete mode 100644 spec/lib/gitlab/email/message/in_product_marketing/team_spec.rb delete mode 100644 spec/lib/gitlab/email/message/in_product_marketing/trial_short_spec.rb delete mode 100644 spec/lib/gitlab/email/message/in_product_marketing/trial_spec.rb delete mode 100644 spec/lib/gitlab/email/message/in_product_marketing/verify_spec.rb delete mode 100644 spec/lib/gitlab/email/message/in_product_marketing_spec.rb delete mode 100644 spec/lib/gitlab/usage/metrics/instrumentations/batched_background_migration_failed_jobs_metric_spec.rb diff --git a/.gitlab/ci/build-images.gitlab-ci.yml b/.gitlab/ci/build-images.gitlab-ci.yml index 1361f1fe412..d4a9582ded3 100644 --- a/.gitlab/ci/build-images.gitlab-ci.yml +++ b/.gitlab/ci/build-images.gitlab-ci.yml @@ -34,7 +34,7 @@ build-gdk-image: - .base-image-build-buildx - .build-images:rules:build-gdk-image tags: - - high-cpu + - saas-linux-xlarge-amd64 stage: build-images needs: [] script: diff --git a/.gitlab/ci/qa-common/rules.gitlab-ci.yml b/.gitlab/ci/qa-common/rules.gitlab-ci.yml index 16440aa4cbc..c0a4e8d206f 100644 --- a/.gitlab/ci/qa-common/rules.gitlab-ci.yml +++ b/.gitlab/ci/qa-common/rules.gitlab-ci.yml @@ -43,6 +43,10 @@ .not-canonical-project: ¬-canonical-project if: '$CI_PROJECT_PATH != "gitlab-org/gitlab" && $CI_PROJECT_PATH != "gitlab-cn/gitlab"' +# If Schedule pipeline +.if-schedule-pipeline: &if-schedule-pipeline + if: '$CI_PIPELINE_SOURCE == "schedule"' + # Selective test execution against omnibus instance have following execution scenarios: # * only e2e spec files changed - runs only changed specs # * qa framework changes - runs full test suite @@ -149,6 +153,17 @@ when: never - !reference [.rules:test:qa, rules] +.rules:test:never-schedule-pipeline: + rules: + - <<: *if-schedule-pipeline + when: never + +.rules:test:gdk-load-balancer-changes: + rules: + - changes: + - ".gitlab/ci/test-on-gdk/**" + - "lib/gitlab/database/load_balancing/**/*" + .rules:test:qa-default-branch: rules: - *qa-run-all-e2e-label diff --git a/.gitlab/ci/rules.gitlab-ci.yml b/.gitlab/ci/rules.gitlab-ci.yml index 3ccd5995531..9361563c1d9 100644 --- a/.gitlab/ci/rules.gitlab-ci.yml +++ b/.gitlab/ci/rules.gitlab-ci.yml @@ -923,16 +923,9 @@ - !reference [".qa:rules:package-and-test-never-run", rules] - <<: *if-default-branch-schedule-nightly # already executed in the 2-hourly schedule when: never - # Rebuild base only when relevant components change - - <<: *if-default-branch-refs - changes: *gdk-component-patterns - variables: - BUILD_GDK_BASE: "true" - <<: *if-default-branch-refs - <<: *if-merge-request changes: *gdk-component-patterns - variables: - BUILD_GDK_BASE: "true" # The rest are included to be consistent with .qa:rules:e2e:test-on-gdk - <<: *if-merge-request-targeting-stable-branch changes: *setup-test-env-patterns diff --git a/.gitlab/ci/test-on-gdk/main.gitlab-ci.yml b/.gitlab/ci/test-on-gdk/main.gitlab-ci.yml index 8f60a8505f3..8e94338bb68 100644 --- a/.gitlab/ci/test-on-gdk/main.gitlab-ci.yml +++ b/.gitlab/ci/test-on-gdk/main.gitlab-ci.yml @@ -146,9 +146,8 @@ gdk-qa-smoke-with-load-balancer: reports: dotenv: "" rules: - - changes: - - ".gitlab/ci/test-on-gdk/**" - - "lib/gitlab/database/load_balancing/**/*" + - !reference [".rules:test:never-schedule-pipeline", rules] + - !reference [".rules:test:gdk-load-balancer-changes", rules] allow_failure: true gdk-qa-reliable: @@ -177,9 +176,8 @@ gdk-qa-reliable-with-load-balancer: reports: dotenv: "" rules: - - changes: - - ".gitlab/ci/test-on-gdk/**" - - "lib/gitlab/database/load_balancing/**/*" + - !reference [".rules:test:never-schedule-pipeline", rules] + - !reference [".rules:test:gdk-load-balancer-changes", rules] allow_failure: true gdk-qa-non-blocking: diff --git a/app/assets/javascripts/ci/pipeline_details/components/jobs_shared/action_component.vue b/app/assets/javascripts/ci/common/private/job_action_component.vue similarity index 98% rename from app/assets/javascripts/ci/pipeline_details/components/jobs_shared/action_component.vue rename to app/assets/javascripts/ci/common/private/job_action_component.vue index ffb6ab71b22..f649750ce8a 100644 --- a/app/assets/javascripts/ci/pipeline_details/components/jobs_shared/action_component.vue +++ b/app/assets/javascripts/ci/common/private/job_action_component.vue @@ -5,7 +5,7 @@ import axios from '~/lib/utils/axios_utils'; import { BV_HIDE_TOOLTIP } from '~/lib/utils/constants'; import { dasherize } from '~/lib/utils/text_utility'; import { __ } from '~/locale'; -import { reportToSentry } from '../../utils'; +import { reportToSentry } from '~/ci/utils'; /** * Renders either a cancel, retry or play icon button and handles the post request diff --git a/app/assets/javascripts/ci/pipeline_details/components/graph_shared/links_layer.vue b/app/assets/javascripts/ci/common/private/job_links_layer.vue similarity index 88% rename from app/assets/javascripts/ci/pipeline_details/components/graph_shared/links_layer.vue rename to app/assets/javascripts/ci/common/private/job_links_layer.vue index ef24694e494..59260ca3f81 100644 --- a/app/assets/javascripts/ci/pipeline_details/components/graph_shared/links_layer.vue +++ b/app/assets/javascripts/ci/common/private/job_links_layer.vue @@ -1,8 +1,8 @@ diff --git a/app/assets/javascripts/ci/pipeline_details/components/graph/constants.js b/app/assets/javascripts/ci/pipeline_details/graph/constants.js similarity index 100% rename from app/assets/javascripts/ci/pipeline_details/components/graph/constants.js rename to app/assets/javascripts/ci/pipeline_details/graph/constants.js diff --git a/app/assets/javascripts/ci/pipeline_details/components/graph/graph_component_wrapper.vue b/app/assets/javascripts/ci/pipeline_details/graph/graph_component_wrapper.vue similarity index 95% rename from app/assets/javascripts/ci/pipeline_details/components/graph/graph_component_wrapper.vue rename to app/assets/javascripts/ci/pipeline_details/graph/graph_component_wrapper.vue index b2cef7c37b9..bd7325f7925 100644 --- a/app/assets/javascripts/ci/pipeline_details/components/graph/graph_component_wrapper.vue +++ b/app/assets/javascripts/ci/pipeline_details/graph/graph_component_wrapper.vue @@ -4,10 +4,10 @@ import getPipelineDetails from 'shared_queries/pipelines/get_pipeline_details.qu import getUserCallouts from '~/graphql_shared/queries/get_user_callouts.query.graphql'; import { __, s__ } from '~/locale'; import LocalStorageSync from '~/vue_shared/components/local_storage_sync.vue'; -import { DEFAULT, DRAW_FAILURE, LOAD_FAILURE } from '../../constants'; -import DismissPipelineGraphCallout from '../../graphql/mutations/dismiss_pipeline_notification.graphql'; -import getPipelineQuery from '../../graphql/queries/get_pipeline_header_data.query.graphql'; -import { reportToSentry, reportMessageToSentry } from '../../utils'; +import { DEFAULT, DRAW_FAILURE, LOAD_FAILURE } from '~/ci/pipeline_details/constants'; +import getPipelineQuery from '~/ci/pipeline_details/header/graphql/queries/get_pipeline_header_data.query.graphql'; +import { reportToSentry, reportMessageToSentry } from '~/ci/utils'; +import DismissPipelineGraphCallout from './graphql/mutations/dismiss_pipeline_notification.graphql'; import { ACTION_FAILURE, IID_FAILURE, @@ -16,8 +16,8 @@ import { STAGE_VIEW, VIEW_TYPE_KEY, } from './constants'; -import PipelineGraph from './graph_component.vue'; -import GraphViewSelector from './graph_view_selector.vue'; +import PipelineGraph from './components/graph_component.vue'; +import GraphViewSelector from './components/graph_view_selector.vue'; import { calculatePipelineLayersInfo, getQueryHeaders, diff --git a/app/assets/javascripts/ci/pipeline_details/graphql/mutations/dismiss_pipeline_notification.graphql b/app/assets/javascripts/ci/pipeline_details/graph/graphql/mutations/dismiss_pipeline_notification.graphql similarity index 100% rename from app/assets/javascripts/ci/pipeline_details/graphql/mutations/dismiss_pipeline_notification.graphql rename to app/assets/javascripts/ci/pipeline_details/graph/graphql/mutations/dismiss_pipeline_notification.graphql diff --git a/app/assets/javascripts/ci/pipeline_details/components/graph/perf_utils.js b/app/assets/javascripts/ci/pipeline_details/graph/perf_utils.js similarity index 96% rename from app/assets/javascripts/ci/pipeline_details/components/graph/perf_utils.js rename to app/assets/javascripts/ci/pipeline_details/graph/perf_utils.js index 3737a209f5c..511dcbe6889 100644 --- a/app/assets/javascripts/ci/pipeline_details/components/graph/perf_utils.js +++ b/app/assets/javascripts/ci/pipeline_details/graph/perf_utils.js @@ -8,7 +8,7 @@ import { } from '~/performance/constants'; import { performanceMarkAndMeasure } from '~/performance/utils'; -import { reportPerformance } from '../graph_shared/api'; +import { reportPerformance } from './api_utils'; export const beginPerfMeasure = () => { performanceMarkAndMeasure({ mark: PIPELINES_DETAIL_LINKS_MARK_CALCULATE_START }); diff --git a/app/assets/javascripts/ci/pipeline_details/components/graph/utils.js b/app/assets/javascripts/ci/pipeline_details/graph/utils.js similarity index 93% rename from app/assets/javascripts/ci/pipeline_details/components/graph/utils.js rename to app/assets/javascripts/ci/pipeline_details/graph/utils.js index c888c8a5537..9a8d6440d4d 100644 --- a/app/assets/javascripts/ci/pipeline_details/components/graph/utils.js +++ b/app/assets/javascripts/ci/pipeline_details/graph/utils.js @@ -1,8 +1,9 @@ import { isEmpty } from 'lodash'; import { getIdFromGraphQLId, etagQueryHeaders } from '~/graphql_shared/utils'; -import { reportToSentry } from '../../utils'; -import { listByLayers } from '../parsing_utils'; -import { unwrapStagesWithNeedsAndLookup } from '../unwrapping_utils'; +import { reportToSentry } from '~/ci/utils'; + +import { listByLayers } from '~/ci/pipeline_details/utils/parsing_utils'; +import { unwrapStagesWithNeedsAndLookup } from '~/ci/pipeline_details/utils/unwrapping_utils'; import { beginPerfMeasure, finishPerfMeasureAndSend } from './perf_utils'; export { toggleQueryPollingByVisibility } from '~/graphql_shared/utils'; diff --git a/app/assets/javascripts/ci/pipeline_details/graphql/queries/get_pipeline_header_data.query.graphql b/app/assets/javascripts/ci/pipeline_details/header/graphql/queries/get_pipeline_header_data.query.graphql similarity index 100% rename from app/assets/javascripts/ci/pipeline_details/graphql/queries/get_pipeline_header_data.query.graphql rename to app/assets/javascripts/ci/pipeline_details/header/graphql/queries/get_pipeline_header_data.query.graphql diff --git a/app/assets/javascripts/ci/pipeline_details/components/pipeline_details_header.vue b/app/assets/javascripts/ci/pipeline_details/header/pipeline_details_header.vue similarity index 99% rename from app/assets/javascripts/ci/pipeline_details/components/pipeline_details_header.vue rename to app/assets/javascripts/ci/pipeline_details/header/pipeline_details_header.vue index 98798d3b8ad..4a15f5b581a 100644 --- a/app/assets/javascripts/ci/pipeline_details/components/pipeline_details_header.vue +++ b/app/assets/javascripts/ci/pipeline_details/header/pipeline_details_header.vue @@ -30,8 +30,8 @@ import { import cancelPipelineMutation from '../graphql/mutations/cancel_pipeline.mutation.graphql'; import deletePipelineMutation from '../graphql/mutations/delete_pipeline.mutation.graphql'; import retryPipelineMutation from '../graphql/mutations/retry_pipeline.mutation.graphql'; -import getPipelineQuery from '../graphql/queries/get_pipeline_header_data.query.graphql'; -import { getQueryHeaders } from './graph/utils'; +import { getQueryHeaders } from '../graph/utils'; +import getPipelineQuery from './graphql/queries/get_pipeline_header_data.query.graphql'; const DELETE_MODAL_ID = 'pipeline-delete-modal'; const POLL_INTERVAL = 10000; diff --git a/app/assets/javascripts/ci/pipeline_details/components/jobs/failed_jobs_table.vue b/app/assets/javascripts/ci/pipeline_details/jobs/components/failed_jobs_table.vue similarity index 97% rename from app/assets/javascripts/ci/pipeline_details/components/jobs/failed_jobs_table.vue rename to app/assets/javascripts/ci/pipeline_details/jobs/components/failed_jobs_table.vue index f84ae13180d..98431bd1fcc 100644 --- a/app/assets/javascripts/ci/pipeline_details/components/jobs/failed_jobs_table.vue +++ b/app/assets/javascripts/ci/pipeline_details/jobs/components/failed_jobs_table.vue @@ -6,7 +6,7 @@ import { createAlert } from '~/alert'; import Tracking from '~/tracking'; import { redirectTo } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated import CiBadgeLink from '~/vue_shared/components/ci_badge_link.vue'; -import RetryFailedJobMutation from '../../graphql/mutations/retry_failed_job.mutation.graphql'; +import RetryFailedJobMutation from '../graphql/mutations/retry_failed_job.mutation.graphql'; import { DEFAULT_FIELDS, TRACKING_CATEGORIES } from '../../constants'; export default { diff --git a/app/assets/javascripts/ci/pipeline_details/components/jobs/failed_jobs_app.vue b/app/assets/javascripts/ci/pipeline_details/jobs/failed_jobs_app.vue similarity index 89% rename from app/assets/javascripts/ci/pipeline_details/components/jobs/failed_jobs_app.vue rename to app/assets/javascripts/ci/pipeline_details/jobs/failed_jobs_app.vue index c24862f828b..b946a40e590 100644 --- a/app/assets/javascripts/ci/pipeline_details/components/jobs/failed_jobs_app.vue +++ b/app/assets/javascripts/ci/pipeline_details/jobs/failed_jobs_app.vue @@ -2,8 +2,8 @@ import { GlLoadingIcon } from '@gitlab/ui'; import { s__ } from '~/locale'; import { createAlert } from '~/alert'; -import GetFailedJobsQuery from '../../graphql/queries/get_failed_jobs.query.graphql'; -import FailedJobsTable from './failed_jobs_table.vue'; +import GetFailedJobsQuery from './graphql/queries/get_failed_jobs.query.graphql'; +import FailedJobsTable from './components/failed_jobs_table.vue'; export default { components: { diff --git a/app/assets/javascripts/ci/pipeline_details/graphql/mutations/retry_failed_job.mutation.graphql b/app/assets/javascripts/ci/pipeline_details/jobs/graphql/mutations/retry_failed_job.mutation.graphql similarity index 100% rename from app/assets/javascripts/ci/pipeline_details/graphql/mutations/retry_failed_job.mutation.graphql rename to app/assets/javascripts/ci/pipeline_details/jobs/graphql/mutations/retry_failed_job.mutation.graphql diff --git a/app/assets/javascripts/ci/pipeline_details/graphql/queries/get_failed_jobs.query.graphql b/app/assets/javascripts/ci/pipeline_details/jobs/graphql/queries/get_failed_jobs.query.graphql similarity index 100% rename from app/assets/javascripts/ci/pipeline_details/graphql/queries/get_failed_jobs.query.graphql rename to app/assets/javascripts/ci/pipeline_details/jobs/graphql/queries/get_failed_jobs.query.graphql diff --git a/app/assets/javascripts/ci/pipeline_details/graphql/queries/get_pipeline_jobs.query.graphql b/app/assets/javascripts/ci/pipeline_details/jobs/graphql/queries/get_pipeline_jobs.query.graphql similarity index 100% rename from app/assets/javascripts/ci/pipeline_details/graphql/queries/get_pipeline_jobs.query.graphql rename to app/assets/javascripts/ci/pipeline_details/jobs/graphql/queries/get_pipeline_jobs.query.graphql diff --git a/app/assets/javascripts/ci/pipeline_details/components/jobs/jobs_app.vue b/app/assets/javascripts/ci/pipeline_details/jobs/jobs_app.vue similarity index 97% rename from app/assets/javascripts/ci/pipeline_details/components/jobs/jobs_app.vue rename to app/assets/javascripts/ci/pipeline_details/jobs/jobs_app.vue index 61748860983..7a09dd27ad8 100644 --- a/app/assets/javascripts/ci/pipeline_details/components/jobs/jobs_app.vue +++ b/app/assets/javascripts/ci/pipeline_details/jobs/jobs_app.vue @@ -6,7 +6,7 @@ import { __ } from '~/locale'; import eventHub from '~/jobs/components/table/event_hub'; import JobsTable from '~/jobs/components/table/jobs_table.vue'; import { JOBS_TAB_FIELDS } from '~/jobs/components/table/constants'; -import getPipelineJobs from '../../graphql/queries/get_pipeline_jobs.query.graphql'; +import getPipelineJobs from './graphql/queries/get_pipeline_jobs.query.graphql'; export default { fields: JOBS_TAB_FIELDS, diff --git a/app/assets/javascripts/ci/pipeline_details/mixins/stage_column_mixin.js b/app/assets/javascripts/ci/pipeline_details/mixins/stage_column_mixin.js deleted file mode 100644 index 578ff498358..00000000000 --- a/app/assets/javascripts/ci/pipeline_details/mixins/stage_column_mixin.js +++ /dev/null @@ -1,14 +0,0 @@ -export default { - props: { - hasUpstream: { - type: Boolean, - required: false, - default: false, - }, - }, - methods: { - buildConnnectorClass(index) { - return index === 0 && (!this.isFirstColumn || this.hasUpstream) ? 'left-connector' : ''; - }, - }, -}; diff --git a/app/assets/javascripts/ci/pipeline_details/pipeline_details_header.js b/app/assets/javascripts/ci/pipeline_details/pipeline_details_header.js index c79aaef23e8..067ec3f305e 100644 --- a/app/assets/javascripts/ci/pipeline_details/pipeline_details_header.js +++ b/app/assets/javascripts/ci/pipeline_details/pipeline_details_header.js @@ -1,7 +1,7 @@ import Vue from 'vue'; import VueApollo from 'vue-apollo'; import { parseBoolean } from '~/lib/utils/common_utils'; -import PipelineDetailsHeader from './components/pipeline_details_header.vue'; +import PipelineDetailsHeader from './header/pipeline_details_header.vue'; Vue.use(VueApollo); diff --git a/app/assets/javascripts/ci/pipeline_details/pipeline_tabs.js b/app/assets/javascripts/ci/pipeline_details/pipeline_tabs.js index 8d4c9d1220a..0ca9a68e70d 100644 --- a/app/assets/javascripts/ci/pipeline_details/pipeline_tabs.js +++ b/app/assets/javascripts/ci/pipeline_details/pipeline_tabs.js @@ -4,10 +4,11 @@ import VueRouter from 'vue-router'; import Vuex from 'vuex'; import VueApollo from 'vue-apollo'; import { GlToast } from '@gitlab/ui'; -import PipelineTabs from 'ee_else_ce/ci/pipeline_details/components/pipeline_tabs.vue'; +import PipelineTabs from 'ee_else_ce/ci/pipeline_details/tabs/pipeline_tabs.vue'; +import { reportToSentry } from '~/ci/utils'; import { parseBoolean } from '~/lib/utils/common_utils'; import createTestReportsStore from './stores/test_reports'; -import { getPipelineDefaultTab, reportToSentry } from './utils'; +import { getPipelineDefaultTab } from './utils'; Vue.use(GlToast); Vue.use(VueApollo); diff --git a/app/assets/javascripts/ci/pipeline_details/pipelines_index.js b/app/assets/javascripts/ci/pipeline_details/pipelines_index.js index 20fd0915e28..86b565d7821 100644 --- a/app/assets/javascripts/ci/pipeline_details/pipelines_index.js +++ b/app/assets/javascripts/ci/pipeline_details/pipelines_index.js @@ -10,7 +10,7 @@ import { import { doesHashExistInUrl } from '~/lib/utils/url_utility'; import { __ } from '~/locale'; import Translate from '~/vue_shared/translate'; -import Pipelines from './components/pipelines_list/pipelines.vue'; +import Pipelines from './pipelines_list/pipelines.vue'; import PipelinesStore from './stores/pipelines_store'; Vue.use(Translate); diff --git a/app/assets/javascripts/ci/pipeline_details/components/pipelines_list/nav_controls.vue b/app/assets/javascripts/ci/pipeline_details/pipelines_list/components/nav_controls.vue similarity index 100% rename from app/assets/javascripts/ci/pipeline_details/components/pipelines_list/nav_controls.vue rename to app/assets/javascripts/ci/pipeline_details/pipelines_list/components/nav_controls.vue diff --git a/app/assets/javascripts/ci/pipeline_details/components/pipelines_list/pipeline_labels.vue b/app/assets/javascripts/ci/pipeline_details/pipelines_list/components/pipeline_labels.vue similarity index 98% rename from app/assets/javascripts/ci/pipeline_details/components/pipelines_list/pipeline_labels.vue rename to app/assets/javascripts/ci/pipeline_details/pipelines_list/components/pipeline_labels.vue index f8b4299485e..082ede60244 100644 --- a/app/assets/javascripts/ci/pipeline_details/components/pipelines_list/pipeline_labels.vue +++ b/app/assets/javascripts/ci/pipeline_details/pipelines_list/components/pipeline_labels.vue @@ -1,7 +1,7 @@