Add latest changes from gitlab-org/gitlab@master

This commit is contained in:
GitLab Bot
2023-09-07 00:09:45 +00:00
parent 179a30a49d
commit d8f61f6383
225 changed files with 846 additions and 2083 deletions

View File

@ -34,7 +34,7 @@ build-gdk-image:
- .base-image-build-buildx - .base-image-build-buildx
- .build-images:rules:build-gdk-image - .build-images:rules:build-gdk-image
tags: tags:
- high-cpu - saas-linux-xlarge-amd64
stage: build-images stage: build-images
needs: [] needs: []
script: script:

View File

@ -43,6 +43,10 @@
.not-canonical-project: &not-canonical-project .not-canonical-project: &not-canonical-project
if: '$CI_PROJECT_PATH != "gitlab-org/gitlab" && $CI_PROJECT_PATH != "gitlab-cn/gitlab"' 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: # Selective test execution against omnibus instance have following execution scenarios:
# * only e2e spec files changed - runs only changed specs # * only e2e spec files changed - runs only changed specs
# * qa framework changes - runs full test suite # * qa framework changes - runs full test suite
@ -149,6 +153,17 @@
when: never when: never
- !reference [.rules:test:qa, rules] - !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:test:qa-default-branch:
rules: rules:
- *qa-run-all-e2e-label - *qa-run-all-e2e-label

View File

@ -923,16 +923,9 @@
- !reference [".qa:rules:package-and-test-never-run", rules] - !reference [".qa:rules:package-and-test-never-run", rules]
- <<: *if-default-branch-schedule-nightly # already executed in the 2-hourly schedule - <<: *if-default-branch-schedule-nightly # already executed in the 2-hourly schedule
when: never 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-default-branch-refs
- <<: *if-merge-request - <<: *if-merge-request
changes: *gdk-component-patterns changes: *gdk-component-patterns
variables:
BUILD_GDK_BASE: "true"
# The rest are included to be consistent with .qa:rules:e2e:test-on-gdk # The rest are included to be consistent with .qa:rules:e2e:test-on-gdk
- <<: *if-merge-request-targeting-stable-branch - <<: *if-merge-request-targeting-stable-branch
changes: *setup-test-env-patterns changes: *setup-test-env-patterns

View File

@ -146,9 +146,8 @@ gdk-qa-smoke-with-load-balancer:
reports: reports:
dotenv: "" dotenv: ""
rules: rules:
- changes: - !reference [".rules:test:never-schedule-pipeline", rules]
- ".gitlab/ci/test-on-gdk/**" - !reference [".rules:test:gdk-load-balancer-changes", rules]
- "lib/gitlab/database/load_balancing/**/*"
allow_failure: true allow_failure: true
gdk-qa-reliable: gdk-qa-reliable:
@ -177,9 +176,8 @@ gdk-qa-reliable-with-load-balancer:
reports: reports:
dotenv: "" dotenv: ""
rules: rules:
- changes: - !reference [".rules:test:never-schedule-pipeline", rules]
- ".gitlab/ci/test-on-gdk/**" - !reference [".rules:test:gdk-load-balancer-changes", rules]
- "lib/gitlab/database/load_balancing/**/*"
allow_failure: true allow_failure: true
gdk-qa-non-blocking: gdk-qa-non-blocking:

View File

@ -5,7 +5,7 @@ import axios from '~/lib/utils/axios_utils';
import { BV_HIDE_TOOLTIP } from '~/lib/utils/constants'; import { BV_HIDE_TOOLTIP } from '~/lib/utils/constants';
import { dasherize } from '~/lib/utils/text_utility'; import { dasherize } from '~/lib/utils/text_utility';
import { __ } from '~/locale'; 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 * Renders either a cancel, retry or play icon button and handles the post request

View File

@ -1,8 +1,8 @@
<script> <script>
import { memoize } from 'lodash'; import { memoize } from 'lodash';
import { reportToSentry } from '../../utils'; import { reportToSentry } from '~/ci/utils';
import { parseData } from '../parsing_utils'; import { parseData } from '~/ci/pipeline_details/utils/parsing_utils';
import LinksInner from './links_inner.vue'; import LinksInner from '~/ci/pipeline_details/graph/components/links_inner.vue';
const parseForLinksBare = (pipeline) => { const parseForLinksBare = (pipeline) => {
const arrayOfJobs = pipeline.flatMap(({ groups }) => groups); const arrayOfJobs = pipeline.flatMap(({ groups }) => groups);

View File

@ -1,10 +1,10 @@
<script> <script>
import * as d3 from 'd3'; import * as d3 from 'd3';
import { uniqueId } from 'lodash'; import { uniqueId } from 'lodash';
import { getMaxNodes, removeOrphanNodes } from '~/ci/pipeline_details/utils/parsing_utils';
import { PARSE_FAILURE } from '../../constants'; import { PARSE_FAILURE } from '../../constants';
import { getMaxNodes, removeOrphanNodes } from '../parsing_utils'; import { LINK_SELECTOR, NODE_SELECTOR, ADD_NOTE, REMOVE_NOTE, REPLACE_NOTES } from '../constants';
import { LINK_SELECTOR, NODE_SELECTOR, ADD_NOTE, REMOVE_NOTE, REPLACE_NOTES } from './constants'; import { calculateClip, createLinkPath, createSankey, labelPosition } from '../drawing_utils';
import { calculateClip, createLinkPath, createSankey, labelPosition } from './drawing_utils';
import { import {
currentIsLive, currentIsLive,
getLiveLinksAsDict, getLiveLinksAsDict,
@ -12,7 +12,7 @@ import {
restoreLinks, restoreLinks,
toggleLinkHighlight, toggleLinkHighlight,
togglePathHighlights, togglePathHighlights,
} from './interactions'; } from '../interactions';
export default { export default {
viewOptions: { viewOptions: {

View File

@ -4,12 +4,17 @@ import { GlAlert, GlButton, GlEmptyState, GlLink, GlSprintf } from '@gitlab/ui';
import { isEmpty } from 'lodash'; import { isEmpty } from 'lodash';
import { fetchPolicies } from '~/lib/graphql'; import { fetchPolicies } from '~/lib/graphql';
import { __ } from '~/locale'; import { __ } from '~/locale';
import { DEFAULT, PARSE_FAILURE, LOAD_FAILURE, UNSUPPORTED_DATA } from '../../constants'; import {
import getDagVisData from '../../graphql/queries/get_dag_vis_data.query.graphql'; DEFAULT,
import { parseData } from '../parsing_utils'; PARSE_FAILURE,
LOAD_FAILURE,
UNSUPPORTED_DATA,
} from '~/ci/pipeline_details/constants';
import { parseData } from '~/ci/pipeline_details/utils/parsing_utils';
import getDagVisData from './graphql/queries/get_dag_vis_data.query.graphql';
import { ADD_NOTE, REMOVE_NOTE, REPLACE_NOTES } from './constants'; import { ADD_NOTE, REMOVE_NOTE, REPLACE_NOTES } from './constants';
import DagAnnotations from './dag_annotations.vue'; import DagAnnotations from './components/dag_annotations.vue';
import DagGraph from './dag_graph.vue'; import DagGraph from './components/dag_graph.vue';
export default { export default {
// eslint-disable-next-line @gitlab/require-i18n-strings // eslint-disable-next-line @gitlab/require-i18n-strings

View File

@ -1,5 +1,5 @@
import axios from '~/lib/utils/axios_utils'; import axios from '~/lib/utils/axios_utils';
import { reportToSentry } from '../../utils'; import { reportToSentry } from '~/ci/utils';
export const reportPerformance = (path, stats) => { export const reportPerformance = (path, stats) => {
// FIXME: https://gitlab.com/gitlab-org/gitlab/-/issues/330245 // FIXME: https://gitlab.com/gitlab-org/gitlab/-/issues/330245

View File

@ -1,15 +1,15 @@
<script> <script>
import { reportToSentry } from '../../utils'; import { reportToSentry } from '~/ci/utils';
import LinkedGraphWrapper from '../graph_shared/linked_graph_wrapper.vue';
import LinksLayer from '../graph_shared/links_layer.vue';
import { import {
generateColumnsFromLayersListMemoized, generateColumnsFromLayersListMemoized,
keepLatestDownstreamPipelines, keepLatestDownstreamPipelines,
} from '../parsing_utils'; } from '~/ci/pipeline_details/utils/parsing_utils';
import { DOWNSTREAM, MAIN, UPSTREAM, ONE_COL_WIDTH, STAGE_VIEW } from './constants'; import LinksLayer from '../../../common/private/job_links_layer.vue';
import { DOWNSTREAM, MAIN, UPSTREAM, ONE_COL_WIDTH, STAGE_VIEW } from '../constants';
import { validateConfigPaths } from '../utils';
import LinkedGraphWrapper from './linked_graph_wrapper.vue';
import LinkedPipelinesColumn from './linked_pipelines_column.vue'; import LinkedPipelinesColumn from './linked_pipelines_column.vue';
import StageColumnComponent from './stage_column_component.vue'; import StageColumnComponent from './stage_column_component.vue';
import { validateConfigPaths } from './utils';
export default { export default {
name: 'PipelineGraph', name: 'PipelineGraph',

View File

@ -1,7 +1,7 @@
<script> <script>
import { GlAlert, GlButton, GlButtonGroup, GlLoadingIcon, GlToggle } from '@gitlab/ui'; import { GlAlert, GlButton, GlButtonGroup, GlLoadingIcon, GlToggle } from '@gitlab/ui';
import { __, s__ } from '~/locale'; import { __, s__ } from '~/locale';
import { STAGE_VIEW, LAYER_VIEW } from './constants'; import { STAGE_VIEW, LAYER_VIEW } from '../constants';
export default { export default {
name: 'GraphViewSelector', name: 'GraphViewSelector',

View File

@ -1,6 +1,6 @@
<script> <script>
import { reportToSentry } from '../../utils'; import { reportToSentry } from '~/ci/utils';
import { JOB_DROPDOWN, SINGLE_JOB } from './constants'; import { JOB_DROPDOWN, SINGLE_JOB } from '../constants';
import JobItem from './job_item.vue'; import JobItem from './job_item.vue';
/** /**

View File

@ -1,14 +1,14 @@
<script> <script>
import { GlBadge, GlForm, GlFormCheckbox, GlLink, GlModal, GlTooltipDirective } from '@gitlab/ui'; import { GlBadge, GlForm, GlFormCheckbox, GlLink, GlModal, GlTooltipDirective } from '@gitlab/ui';
import { reportToSentry } from '~/ci/utils';
import delayedJobMixin from '~/jobs/mixins/delayed_job_mixin'; import delayedJobMixin from '~/jobs/mixins/delayed_job_mixin';
import { helpPagePath } from '~/helpers/help_page_helper'; import { helpPagePath } from '~/helpers/help_page_helper';
import { BV_HIDE_TOOLTIP } from '~/lib/utils/constants'; import { BV_HIDE_TOOLTIP } from '~/lib/utils/constants';
import { __, s__, sprintf } from '~/locale'; import { __, s__, sprintf } from '~/locale';
import CiIcon from '~/vue_shared/components/ci_icon.vue'; import CiIcon from '~/vue_shared/components/ci_icon.vue';
import { reportToSentry } from '../../utils'; import ActionComponent from '../../../common/private/job_action_component.vue';
import ActionComponent from '../jobs_shared/action_component.vue'; import JobNameComponent from '../../../common/private/job_name_component.vue';
import JobNameComponent from '../jobs_shared/job_name_component.vue'; import { BRIDGE_KIND, RETRY_ACTION_TITLE, SINGLE_JOB, SKIP_RETRY_MODAL_KEY } from '../constants';
import { BRIDGE_KIND, RETRY_ACTION_TITLE, SINGLE_JOB, SKIP_RETRY_MODAL_KEY } from './constants';
/** /**
* Renders the badge for the pipeline graph and the job's dropdown. * Renders the badge for the pipeline graph and the job's dropdown.

View File

@ -14,8 +14,8 @@ import { __, sprintf } from '~/locale';
import CancelPipelineMutation from '~/ci/pipeline_details/graphql/mutations/cancel_pipeline.mutation.graphql'; import CancelPipelineMutation from '~/ci/pipeline_details/graphql/mutations/cancel_pipeline.mutation.graphql';
import RetryPipelineMutation from '~/ci/pipeline_details/graphql/mutations/retry_pipeline.mutation.graphql'; import RetryPipelineMutation from '~/ci/pipeline_details/graphql/mutations/retry_pipeline.mutation.graphql';
import CiIcon from '~/vue_shared/components/ci_icon.vue'; import CiIcon from '~/vue_shared/components/ci_icon.vue';
import { reportToSentry } from '../../utils'; import { reportToSentry } from '~/ci/utils';
import { ACTION_FAILURE, DOWNSTREAM, UPSTREAM } from './constants'; import { ACTION_FAILURE, DOWNSTREAM, UPSTREAM } from '../constants';
export default { export default {
directives: { directives: {

View File

@ -1,9 +1,8 @@
<script> <script>
import getPipelineDetails from 'shared_queries/pipelines/get_pipeline_details.query.graphql'; import getPipelineDetails from 'shared_queries/pipelines/get_pipeline_details.query.graphql';
import { reportToSentry } from '~/ci/utils';
import { LOAD_FAILURE } from '../../constants'; import { LOAD_FAILURE } from '../../constants';
import { reportToSentry } from '../../utils'; import { ONE_COL_WIDTH, UPSTREAM, LAYER_VIEW, STAGE_VIEW } from '../constants';
import { ONE_COL_WIDTH, UPSTREAM, LAYER_VIEW, STAGE_VIEW } from './constants';
import LinkedPipeline from './linked_pipeline.vue';
import { import {
calculatePipelineLayersInfo, calculatePipelineLayersInfo,
getQueryHeaders, getQueryHeaders,
@ -11,7 +10,8 @@ import {
toggleQueryPollingByVisibility, toggleQueryPollingByVisibility,
unwrapPipelineData, unwrapPipelineData,
validateConfigPaths, validateConfigPaths,
} from './utils'; } from '../utils';
import LinkedPipeline from './linked_pipeline.vue';
export default { export default {
components: { components: {

View File

@ -1,9 +1,10 @@
<script> <script>
import { isEmpty } from 'lodash'; import { isEmpty } from 'lodash';
import { STAGE_VIEW } from '~/ci/pipeline_details/graph/constants';
import { createJobsHash, generateJobNeedsDict } from '~/ci/pipeline_details/utils';
import { reportToSentry } from '~/ci/utils';
import { DRAW_FAILURE } from '../../constants'; import { DRAW_FAILURE } from '../../constants';
import { createJobsHash, generateJobNeedsDict, reportToSentry } from '../../utils'; import { generateLinksData } from '../../utils/drawing_utils';
import { STAGE_VIEW } from '../graph/constants';
import { generateLinksData } from './drawing_utils';
export default { export default {
name: 'LinksInner', name: 'LinksInner',

View File

@ -1,9 +1,9 @@
<script> <script>
import { escape, isEmpty } from 'lodash'; import { escape, isEmpty } from 'lodash';
import ActionComponent from '~/ci/common/private/job_action_component.vue';
import glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; import glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
import { reportToSentry } from '../../utils'; import { reportToSentry } from '~/ci/utils';
import MainGraphWrapper from '../graph_shared/main_graph_wrapper.vue'; import RootGraphLayout from './root_graph_layout.vue';
import ActionComponent from '../jobs_shared/action_component.vue';
import JobGroupDropdown from './job_group_dropdown.vue'; import JobGroupDropdown from './job_group_dropdown.vue';
import JobItem from './job_item.vue'; import JobItem from './job_item.vue';
@ -12,7 +12,7 @@ export default {
ActionComponent, ActionComponent,
JobGroupDropdown, JobGroupDropdown,
JobItem, JobItem,
MainGraphWrapper, RootGraphLayout,
}, },
mixins: [glFeatureFlagMixin()], mixins: [glFeatureFlagMixin()],
props: { props: {
@ -135,7 +135,7 @@ export default {
}; };
</script> </script>
<template> <template>
<main-graph-wrapper :class="columnSpacingClass" data-testid="stage-column"> <root-graph-layout :class="columnSpacingClass" data-testid="stage-column">
<template #stages> <template #stages>
<div <div
data-testid="stage-column-title" data-testid="stage-column-title"
@ -192,5 +192,5 @@ export default {
</div> </div>
</div> </div>
</template> </template>
</main-graph-wrapper> </root-graph-layout>
</template> </template>

View File

@ -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 getUserCallouts from '~/graphql_shared/queries/get_user_callouts.query.graphql';
import { __, s__ } from '~/locale'; import { __, s__ } from '~/locale';
import LocalStorageSync from '~/vue_shared/components/local_storage_sync.vue'; import LocalStorageSync from '~/vue_shared/components/local_storage_sync.vue';
import { DEFAULT, DRAW_FAILURE, LOAD_FAILURE } from '../../constants'; import { DEFAULT, DRAW_FAILURE, LOAD_FAILURE } from '~/ci/pipeline_details/constants';
import DismissPipelineGraphCallout from '../../graphql/mutations/dismiss_pipeline_notification.graphql'; import getPipelineQuery from '~/ci/pipeline_details/header/graphql/queries/get_pipeline_header_data.query.graphql';
import getPipelineQuery from '../../graphql/queries/get_pipeline_header_data.query.graphql'; import { reportToSentry, reportMessageToSentry } from '~/ci/utils';
import { reportToSentry, reportMessageToSentry } from '../../utils'; import DismissPipelineGraphCallout from './graphql/mutations/dismiss_pipeline_notification.graphql';
import { import {
ACTION_FAILURE, ACTION_FAILURE,
IID_FAILURE, IID_FAILURE,
@ -16,8 +16,8 @@ import {
STAGE_VIEW, STAGE_VIEW,
VIEW_TYPE_KEY, VIEW_TYPE_KEY,
} from './constants'; } from './constants';
import PipelineGraph from './graph_component.vue'; import PipelineGraph from './components/graph_component.vue';
import GraphViewSelector from './graph_view_selector.vue'; import GraphViewSelector from './components/graph_view_selector.vue';
import { import {
calculatePipelineLayersInfo, calculatePipelineLayersInfo,
getQueryHeaders, getQueryHeaders,

View File

@ -8,7 +8,7 @@ import {
} from '~/performance/constants'; } from '~/performance/constants';
import { performanceMarkAndMeasure } from '~/performance/utils'; import { performanceMarkAndMeasure } from '~/performance/utils';
import { reportPerformance } from '../graph_shared/api'; import { reportPerformance } from './api_utils';
export const beginPerfMeasure = () => { export const beginPerfMeasure = () => {
performanceMarkAndMeasure({ mark: PIPELINES_DETAIL_LINKS_MARK_CALCULATE_START }); performanceMarkAndMeasure({ mark: PIPELINES_DETAIL_LINKS_MARK_CALCULATE_START });

View File

@ -1,8 +1,9 @@
import { isEmpty } from 'lodash'; import { isEmpty } from 'lodash';
import { getIdFromGraphQLId, etagQueryHeaders } from '~/graphql_shared/utils'; import { getIdFromGraphQLId, etagQueryHeaders } from '~/graphql_shared/utils';
import { reportToSentry } from '../../utils'; import { reportToSentry } from '~/ci/utils';
import { listByLayers } from '../parsing_utils';
import { unwrapStagesWithNeedsAndLookup } from '../unwrapping_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'; import { beginPerfMeasure, finishPerfMeasureAndSend } from './perf_utils';
export { toggleQueryPollingByVisibility } from '~/graphql_shared/utils'; export { toggleQueryPollingByVisibility } from '~/graphql_shared/utils';

View File

@ -30,8 +30,8 @@ import {
import cancelPipelineMutation from '../graphql/mutations/cancel_pipeline.mutation.graphql'; import cancelPipelineMutation from '../graphql/mutations/cancel_pipeline.mutation.graphql';
import deletePipelineMutation from '../graphql/mutations/delete_pipeline.mutation.graphql'; import deletePipelineMutation from '../graphql/mutations/delete_pipeline.mutation.graphql';
import retryPipelineMutation from '../graphql/mutations/retry_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 DELETE_MODAL_ID = 'pipeline-delete-modal';
const POLL_INTERVAL = 10000; const POLL_INTERVAL = 10000;

View File

@ -6,7 +6,7 @@ import { createAlert } from '~/alert';
import Tracking from '~/tracking'; import Tracking from '~/tracking';
import { redirectTo } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated import { redirectTo } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated
import CiBadgeLink from '~/vue_shared/components/ci_badge_link.vue'; 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'; import { DEFAULT_FIELDS, TRACKING_CATEGORIES } from '../../constants';
export default { export default {

View File

@ -2,8 +2,8 @@
import { GlLoadingIcon } from '@gitlab/ui'; import { GlLoadingIcon } from '@gitlab/ui';
import { s__ } from '~/locale'; import { s__ } from '~/locale';
import { createAlert } from '~/alert'; import { createAlert } from '~/alert';
import GetFailedJobsQuery from '../../graphql/queries/get_failed_jobs.query.graphql'; import GetFailedJobsQuery from './graphql/queries/get_failed_jobs.query.graphql';
import FailedJobsTable from './failed_jobs_table.vue'; import FailedJobsTable from './components/failed_jobs_table.vue';
export default { export default {
components: { components: {

View File

@ -6,7 +6,7 @@ import { __ } from '~/locale';
import eventHub from '~/jobs/components/table/event_hub'; import eventHub from '~/jobs/components/table/event_hub';
import JobsTable from '~/jobs/components/table/jobs_table.vue'; import JobsTable from '~/jobs/components/table/jobs_table.vue';
import { JOBS_TAB_FIELDS } from '~/jobs/components/table/constants'; 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 { export default {
fields: JOBS_TAB_FIELDS, fields: JOBS_TAB_FIELDS,

View File

@ -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' : '';
},
},
};

View File

@ -1,7 +1,7 @@
import Vue from 'vue'; import Vue from 'vue';
import VueApollo from 'vue-apollo'; import VueApollo from 'vue-apollo';
import { parseBoolean } from '~/lib/utils/common_utils'; 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); Vue.use(VueApollo);

View File

@ -4,10 +4,11 @@ import VueRouter from 'vue-router';
import Vuex from 'vuex'; import Vuex from 'vuex';
import VueApollo from 'vue-apollo'; import VueApollo from 'vue-apollo';
import { GlToast } from '@gitlab/ui'; 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 { parseBoolean } from '~/lib/utils/common_utils';
import createTestReportsStore from './stores/test_reports'; import createTestReportsStore from './stores/test_reports';
import { getPipelineDefaultTab, reportToSentry } from './utils'; import { getPipelineDefaultTab } from './utils';
Vue.use(GlToast); Vue.use(GlToast);
Vue.use(VueApollo); Vue.use(VueApollo);

View File

@ -10,7 +10,7 @@ import {
import { doesHashExistInUrl } from '~/lib/utils/url_utility'; import { doesHashExistInUrl } from '~/lib/utils/url_utility';
import { __ } from '~/locale'; import { __ } from '~/locale';
import Translate from '~/vue_shared/translate'; 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'; import PipelinesStore from './stores/pipelines_store';
Vue.use(Translate); Vue.use(Translate);

View File

@ -1,7 +1,7 @@
<script> <script>
import { GlLink, GlPopover, GlSprintf, GlTooltipDirective, GlBadge } from '@gitlab/ui'; import { GlLink, GlPopover, GlSprintf, GlTooltipDirective, GlBadge } from '@gitlab/ui';
import { helpPagePath } from '~/helpers/help_page_helper'; import { helpPagePath } from '~/helpers/help_page_helper';
import { SCHEDULE_ORIGIN } from '../../constants'; import { SCHEDULE_ORIGIN } from '~/ci/pipeline_details/constants';
export default { export default {
components: { components: {

View File

@ -1,8 +1,8 @@
<script> <script>
import { GlButton, GlTooltipDirective, GlModalDirective } from '@gitlab/ui'; import { GlButton, GlTooltipDirective, GlModalDirective } from '@gitlab/ui';
import Tracking from '~/tracking'; import Tracking from '~/tracking';
import eventHub from '../../event_hub';
import { BUTTON_TOOLTIP_RETRY, BUTTON_TOOLTIP_CANCEL, TRACKING_CATEGORIES } from '../../constants'; import { BUTTON_TOOLTIP_RETRY, BUTTON_TOOLTIP_CANCEL, TRACKING_CATEGORIES } from '../../constants';
import eventHub from '../../event_hub';
import PipelineMultiActions from './pipeline_multi_actions.vue'; import PipelineMultiActions from './pipeline_multi_actions.vue';
import PipelinesManualActions from './pipelines_manual_actions.vue'; import PipelinesManualActions from './pipelines_manual_actions.vue';

View File

@ -5,11 +5,11 @@ import { s__ } from '~/locale';
import Tracking from '~/tracking'; import Tracking from '~/tracking';
import { OPERATORS_IS } from '~/vue_shared/components/filtered_search_bar/constants'; import { OPERATORS_IS } from '~/vue_shared/components/filtered_search_bar/constants';
import { TRACKING_CATEGORIES } from '../../constants'; import { TRACKING_CATEGORIES } from '../../constants';
import PipelineBranchNameToken from './tokens/pipeline_branch_name_token.vue'; import PipelineBranchNameToken from '../tokens/pipeline_branch_name_token.vue';
import PipelineSourceToken from './tokens/pipeline_source_token.vue'; import PipelineSourceToken from '../tokens/pipeline_source_token.vue';
import PipelineStatusToken from './tokens/pipeline_status_token.vue'; import PipelineStatusToken from '../tokens/pipeline_status_token.vue';
import PipelineTagNameToken from './tokens/pipeline_tag_name_token.vue'; import PipelineTagNameToken from '../tokens/pipeline_tag_name_token.vue';
import PipelineTriggerAuthorToken from './tokens/pipeline_trigger_author_token.vue'; import PipelineTriggerAuthorToken from '../tokens/pipeline_trigger_author_token.vue';
export default { export default {
userType: 'username', userType: 'username',

View File

@ -8,7 +8,7 @@ import Tracking from '~/tracking';
import GlCountdown from '~/vue_shared/components/gl_countdown.vue'; import GlCountdown from '~/vue_shared/components/gl_countdown.vue';
import eventHub from '../../event_hub'; import eventHub from '../../event_hub';
import { TRACKING_CATEGORIES } from '../../constants'; import { TRACKING_CATEGORIES } from '../../constants';
import getPipelineActionsQuery from '../../graphql/queries/get_pipeline_actions.query.graphql'; import getPipelineActionsQuery from '../graphql/queries/get_pipeline_actions.query.graphql';
export default { export default {
name: 'PipelinesManualActions', name: 'PipelinesManualActions',

View File

@ -4,9 +4,9 @@ import { cleanLeadingSeparator } from '~/lib/utils/url_utility';
import { s__, __ } from '~/locale'; import { s__, __ } from '~/locale';
import Tracking from '~/tracking'; import Tracking from '~/tracking';
import glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; import glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
import { keepLatestDownstreamPipelines } from '~/ci/pipeline_details/components/parsing_utils'; import { keepLatestDownstreamPipelines } from '~/ci/pipeline_details/utils/parsing_utils';
import LegacyPipelineMiniGraph from '~/ci/pipeline_details/components/pipeline_mini_graph/legacy_pipeline_mini_graph.vue'; import LegacyPipelineMiniGraph from '~/ci/pipeline_mini_graph/legacy_pipeline_mini_graph.vue';
import PipelineFailedJobsWidget from '~/ci/pipeline_details/components/pipelines_list/failure_widget/pipeline_failed_jobs_widget.vue'; import PipelineFailedJobsWidget from '~/ci/pipeline_details/pipelines_list/failure_widget/pipeline_failed_jobs_widget.vue';
import eventHub from '../../event_hub'; import eventHub from '../../event_hub';
import { TRACKING_CATEGORIES } from '../../constants'; import { TRACKING_CATEGORIES } from '../../constants';
import PipelineOperations from './pipeline_operations.vue'; import PipelineOperations from './pipeline_operations.vue';

View File

@ -2,8 +2,8 @@
import { GlEmptyState } from '@gitlab/ui'; import { GlEmptyState } from '@gitlab/ui';
import { s__ } from '~/locale'; import { s__ } from '~/locale';
import GitlabExperiment from '~/experimentation/components/gitlab_experiment.vue'; import GitlabExperiment from '~/experimentation/components/gitlab_experiment.vue';
import PipelinesCiTemplates from './empty_state/pipelines_ci_templates.vue'; import PipelinesCiTemplates from './pipelines_ci_templates.vue';
import IosTemplates from './empty_state/ios_templates.vue'; import IosTemplates from './ios_templates.vue';
export default { export default {
i18n: { i18n: {

View File

@ -5,8 +5,8 @@ import { __, s__, sprintf } from '~/locale';
import { getIdFromGraphQLId } from '~/graphql_shared/utils'; import { getIdFromGraphQLId } from '~/graphql_shared/utils';
import CiIcon from '~/vue_shared/components/ci_icon.vue'; import CiIcon from '~/vue_shared/components/ci_icon.vue';
import SafeHtml from '~/vue_shared/directives/safe_html'; import SafeHtml from '~/vue_shared/directives/safe_html';
import { BRIDGE_KIND } from '~/ci/pipeline_details/components/graph/constants'; import { BRIDGE_KIND } from '~/ci/pipeline_details/graph/constants';
import RetryMrFailedJobMutation from '../../../graphql/mutations/retry_mr_failed_job.mutation.graphql'; import RetryMrFailedJobMutation from '~/ci/merge_requests/graphql/mutations/retry_mr_failed_job.mutation.graphql';
export default { export default {
components: { components: {

View File

@ -2,9 +2,9 @@
import { GlLoadingIcon } from '@gitlab/ui'; import { GlLoadingIcon } from '@gitlab/ui';
import { createAlert } from '~/alert'; import { createAlert } from '~/alert';
import { __, s__, sprintf } from '~/locale'; import { __, s__, sprintf } from '~/locale';
import { getQueryHeaders } from '~/ci/pipeline_details/components/graph/utils'; import { getQueryHeaders } from '~/ci/pipeline_details/graph/utils';
import { graphqlEtagPipelinePath } from '~/ci/pipeline_details/utils'; import { graphqlEtagPipelinePath } from '~/ci/pipeline_details/utils';
import getPipelineFailedJobs from '../../../graphql/queries/get_pipeline_failed_jobs.query.graphql'; import getPipelineFailedJobs from '~/ci/pipeline_details/pipelines_list/graphql/queries/get_pipeline_failed_jobs.query.graphql';
import { sortJobsByStatus } from './utils'; import { sortJobsByStatus } from './utils';
import FailedJobDetails from './failed_job_details.vue'; import FailedJobDetails from './failed_job_details.vue';

View File

@ -17,19 +17,19 @@ import {
FILTER_TAG_IDENTIFIER, FILTER_TAG_IDENTIFIER,
PipelineKeyOptions, PipelineKeyOptions,
TRACKING_CATEGORIES, TRACKING_CATEGORIES,
} from '../../constants'; } from '../constants';
import PipelinesMixin from '../../mixins/pipelines_mixin'; import PipelinesMixin from '../mixins/pipelines_mixin';
import PipelinesService from '../../services/pipelines_service'; import PipelinesService from '../services/pipelines_service';
import { validateParams } from '../../utils'; import { validateParams } from '../utils';
import EmptyState from './empty_state.vue'; import NoCiEmptyState from './empty_state/no_ci_empty_state.vue';
import NavigationControls from './nav_controls.vue'; import NavigationControls from './components/nav_controls.vue';
import PipelinesFilteredSearch from './pipelines_filtered_search.vue'; import PipelinesFilteredSearch from './components/pipelines_filtered_search.vue';
import PipelinesTableComponent from './pipelines_table.vue'; import PipelinesTableComponent from './components/pipelines_table.vue';
export default { export default {
PipelineKeyOptions, PipelineKeyOptions,
components: { components: {
EmptyState, NoCiEmptyState,
GlCollapsibleListbox, GlCollapsibleListbox,
GlEmptyState, GlEmptyState,
GlIcon, GlIcon,
@ -409,7 +409,7 @@ export default {
class="prepend-top-20" class="prepend-top-20"
/> />
<empty-state <no-ci-empty-state
v-else-if="stateToRender === $options.stateMap.emptyState" v-else-if="stateToRender === $options.stateMap.emptyState"
:empty-state-svg-path="emptyStateSvgPath" :empty-state-svg-path="emptyStateSvgPath"
:can-set-ci="canCreatePipeline" :can-set-ci="canCreatePipeline"

View File

@ -3,7 +3,7 @@ import { GlFilteredSearchToken, GlFilteredSearchSuggestion, GlLoadingIcon } from
import { debounce } from 'lodash'; import { debounce } from 'lodash';
import Api from '~/api'; import Api from '~/api';
import { createAlert } from '~/alert'; import { createAlert } from '~/alert';
import { FETCH_BRANCH_ERROR_MESSAGE, FILTER_PIPELINES_SEARCH_DELAY } from '../../../constants'; import { FETCH_BRANCH_ERROR_MESSAGE, FILTER_PIPELINES_SEARCH_DELAY } from '../../constants';
export default { export default {
components: { components: {

View File

@ -1,6 +1,6 @@
<script> <script>
import { GlFilteredSearchToken, GlFilteredSearchSuggestion } from '@gitlab/ui'; import { GlFilteredSearchToken, GlFilteredSearchSuggestion } from '@gitlab/ui';
import { PIPELINE_SOURCES } from 'ee_else_ce/ci/pipeline_details/components/pipelines_list/tokens/constants'; import { PIPELINE_SOURCES } from 'ee_else_ce/ci/pipeline_details/pipelines_list/tokens/constants';
export default { export default {
PIPELINE_SOURCES, PIPELINE_SOURCES,

View File

@ -3,7 +3,7 @@ import { GlFilteredSearchToken, GlFilteredSearchSuggestion, GlLoadingIcon } from
import { debounce } from 'lodash'; import { debounce } from 'lodash';
import Api from '~/api'; import Api from '~/api';
import { createAlert } from '~/alert'; import { createAlert } from '~/alert';
import { FETCH_TAG_ERROR_MESSAGE, FILTER_PIPELINES_SEARCH_DELAY } from '../../../constants'; import { FETCH_TAG_ERROR_MESSAGE, FILTER_PIPELINES_SEARCH_DELAY } from '../../constants';
export default { export default {
components: { components: {

View File

@ -13,7 +13,7 @@ import {
ANY_TRIGGER_AUTHOR, ANY_TRIGGER_AUTHOR,
FETCH_AUTHOR_ERROR_MESSAGE, FETCH_AUTHOR_ERROR_MESSAGE,
FILTER_PIPELINES_SEARCH_DELAY, FILTER_PIPELINES_SEARCH_DELAY,
} from '../../../constants'; } from '../../constants';
export default { export default {
anyTriggerAuthor: ANY_TRIGGER_AUTHOR, anyTriggerAuthor: ANY_TRIGGER_AUTHOR,

View File

@ -1,8 +1,8 @@
import PipelineGraphWrapper from './components/graph/graph_component_wrapper.vue'; import PipelineGraphWrapper from './graph/graph_component_wrapper.vue';
import Dag from './components/dag/dag.vue'; import Dag from './dag/dag.vue';
import FailedJobsApp from './components/jobs/failed_jobs_app.vue'; import FailedJobsApp from './jobs/failed_jobs_app.vue';
import JobsApp from './components/jobs/jobs_app.vue'; import JobsApp from './jobs/jobs_app.vue';
import TestReports from './components/test_reports/test_reports.vue'; import TestReports from './test_reports/test_reports.vue';
import { import {
pipelineTabName, pipelineTabName,
needsTabName, needsTabName,

View File

@ -1,7 +1,7 @@
<script> <script>
import { GlButton, GlProgressBar } from '@gitlab/ui'; import { GlButton, GlProgressBar } from '@gitlab/ui';
import { __ } from '~/locale'; import { __ } from '~/locale';
import { formattedTime } from '../../stores/test_reports/utils'; import { formattedTime } from '../stores/test_reports/utils';
export default { export default {
name: 'TestSummary', name: 'TestSummary',

View File

@ -1,4 +1,3 @@
import * as Sentry from '@sentry/browser';
import { pickBy } from 'lodash'; import { pickBy } from 'lodash';
import { parseUrlPathname } from '~/lib/utils/url_utility'; import { parseUrlPathname } from '~/lib/utils/url_utility';
import { import {
@ -6,7 +5,7 @@ import {
SUPPORTED_FILTER_PARAMETERS, SUPPORTED_FILTER_PARAMETERS,
validPipelineTabNames, validPipelineTabNames,
pipelineTabName, pipelineTabName,
} from './constants'; } from '../constants';
/* /*
The following functions are the main engine in transforming the data as The following functions are the main engine in transforming the data as
received from the endpoint into the format the d3 graph expects. received from the endpoint into the format the d3 graph expects.
@ -128,22 +127,6 @@ export const generateJobNeedsDict = (jobs = {}) => {
}, {}); }, {});
}; };
export const reportToSentry = (component, failureType) => {
Sentry.withScope((scope) => {
scope.setTag('component', component);
Sentry.captureException(failureType);
});
};
export const reportMessageToSentry = (component, message, context) => {
Sentry.withScope((scope) => {
// eslint-disable-next-line @gitlab/require-i18n-strings
scope.setContext('Vue data', context);
scope.setTag('component', component);
Sentry.captureMessage(message);
});
};
export const getPipelineDefaultTab = (url) => { export const getPipelineDefaultTab = (url) => {
const strippedUrl = parseUrlPathname(url); const strippedUrl = parseUrlPathname(url);
const regexp = /\w*$/; const regexp = /\w*$/;

View File

@ -1,7 +1,7 @@
import { memoize } from 'lodash'; import { memoize } from 'lodash';
import { createNodeDict } from '../utils';
import { EXPLICIT_NEEDS_PROPERTY, NEEDS_PROPERTY } from '../constants'; import { EXPLICIT_NEEDS_PROPERTY, NEEDS_PROPERTY } from '../constants';
import { createSankey } from './dag/drawing_utils'; import { createSankey } from '../dag/drawing_utils';
import { createNodeDict } from './index';
/* /*
A peformant alternative to lodash's isEqual. Because findIndex always finds A peformant alternative to lodash's isEqual. Because findIndex always finds

View File

@ -1,4 +1,4 @@
import { reportToSentry } from '../utils'; import { reportToSentry } from '~/ci/utils';
import { EXPLICIT_NEEDS_PROPERTY, NEEDS_PROPERTY } from '../constants'; import { EXPLICIT_NEEDS_PROPERTY, NEEDS_PROPERTY } from '../constants';
const unwrapGroups = (stages) => { const unwrapGroups = (stages) => {

View File

@ -1,8 +1,8 @@
<script> <script>
import { GlAlert } from '@gitlab/ui'; import { GlAlert } from '@gitlab/ui';
import { __ } from '~/locale'; import { __ } from '~/locale';
import { DRAW_FAILURE, DEFAULT } from '../../constants'; import { DRAW_FAILURE, DEFAULT } from '~/ci/pipeline_details/constants';
import LinksLayer from '../graph_shared/links_layer.vue'; import LinksLayer from '~/ci/common/private/job_links_layer.vue';
import JobPill from './job_pill.vue'; import JobPill from './job_pill.vue';
import StageName from './stage_name.vue'; import StageName from './stage_name.vue';

View File

@ -1,7 +1,7 @@
<script> <script>
import { __ } from '~/locale'; import { __ } from '~/locale';
import { keepLatestDownstreamPipelines } from '~/ci/pipeline_details/components/parsing_utils'; import { keepLatestDownstreamPipelines } from '~/ci/pipeline_details/utils/parsing_utils';
import LegacyPipelineMiniGraph from '~/ci/pipeline_details/components/pipeline_mini_graph/legacy_pipeline_mini_graph.vue'; import LegacyPipelineMiniGraph from '~/ci/pipeline_mini_graph/legacy_pipeline_mini_graph.vue';
import getLinkedPipelinesQuery from '~/ci/pipeline_details/graphql/queries/get_linked_pipelines.query.graphql'; import getLinkedPipelinesQuery from '~/ci/pipeline_details/graphql/queries/get_linked_pipelines.query.graphql';
import { PIPELINE_FAILURE } from '../../constants'; import { PIPELINE_FAILURE } from '../../constants';

View File

@ -5,13 +5,10 @@ import { truncateSha } from '~/lib/utils/text_utility';
import { s__ } from '~/locale'; import { s__ } from '~/locale';
import getPipelineQuery from '~/ci/pipeline_editor/graphql/queries/pipeline.query.graphql'; import getPipelineQuery from '~/ci/pipeline_editor/graphql/queries/pipeline.query.graphql';
import getPipelineEtag from '~/ci/pipeline_editor/graphql/queries/client/pipeline_etag.query.graphql'; import getPipelineEtag from '~/ci/pipeline_editor/graphql/queries/client/pipeline_etag.query.graphql';
import { import { getQueryHeaders, toggleQueryPollingByVisibility } from '~/ci/pipeline_details/graph/utils';
getQueryHeaders,
toggleQueryPollingByVisibility,
} from '~/ci/pipeline_details/components/graph/utils';
import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
import CiIcon from '~/vue_shared/components/ci_icon.vue'; import CiIcon from '~/vue_shared/components/ci_icon.vue';
import PipelineMiniGraph from '~/ci/pipeline_details/components/pipeline_mini_graph/pipeline_mini_graph.vue'; import PipelineMiniGraph from '~/ci/pipeline_mini_graph/pipeline_mini_graph.vue';
import PipelineEditorMiniGraph from './pipeline_editor_mini_graph.vue'; import PipelineEditorMiniGraph from './pipeline_editor_mini_graph.vue';
const POLL_INTERVAL = 10000; const POLL_INTERVAL = 10000;

View File

@ -2,7 +2,7 @@
import { GlAlert, GlLoadingIcon, GlTabs } from '@gitlab/ui'; import { GlAlert, GlLoadingIcon, GlTabs } from '@gitlab/ui';
import CiEditorHeader from 'ee_else_ce/ci/pipeline_editor/components/editor/ci_editor_header.vue'; import CiEditorHeader from 'ee_else_ce/ci/pipeline_editor/components/editor/ci_editor_header.vue';
import { s__, __ } from '~/locale'; import { s__, __ } from '~/locale';
import PipelineGraph from '~/ci/pipeline_details/components/pipeline_graph/pipeline_graph.vue'; import PipelineGraph from '~/ci/pipeline_editor/components/graph/pipeline_graph.vue';
import { getParameterValues, setUrlParams, updateHistory } from '~/lib/utils/url_utility'; import { getParameterValues, setUrlParams, updateHistory } from '~/lib/utils/url_utility';
import { import {
CREATE_TAB, CREATE_TAB,

View File

@ -4,7 +4,7 @@ import { fetchPolicies } from '~/lib/graphql';
import { mergeUrlParams, queryToObject, redirectTo } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated import { mergeUrlParams, queryToObject, redirectTo } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated
import { __, s__ } from '~/locale'; import { __, s__ } from '~/locale';
import { unwrapStagesWithNeeds } from '~/ci/pipeline_details/components/unwrapping_utils'; import { unwrapStagesWithNeeds } from '~/ci/pipeline_details/utils/unwrapping_utils';
import ConfirmUnsavedChangesDialog from './components/ui/confirm_unsaved_changes_dialog.vue'; import ConfirmUnsavedChangesDialog from './components/ui/confirm_unsaved_changes_dialog.vue';
import PipelineEditorEmptyState from './components/ui/pipeline_editor_empty_state.vue'; import PipelineEditorEmptyState from './components/ui/pipeline_editor_empty_state.vue';

View File

@ -1,11 +1,11 @@
<script> <script>
import { GlTooltipDirective, GlLink } from '@gitlab/ui'; import { GlTooltipDirective, GlLink } from '@gitlab/ui';
import ActionComponent from '~/ci/common/private/job_action_component.vue';
import JobNameComponent from '~/ci/common/private/job_name_component.vue';
import { ICONS } from '~/ci/pipeline_details/constants';
import delayedJobMixin from '~/jobs/mixins/delayed_job_mixin'; import delayedJobMixin from '~/jobs/mixins/delayed_job_mixin';
import { s__, sprintf } from '~/locale'; import { s__, sprintf } from '~/locale';
import { reportToSentry } from '../../utils'; import { reportToSentry } from '../utils';
import ActionComponent from '../jobs_shared/action_component.vue';
import JobNameComponent from '../jobs_shared/job_name_component.vue';
import { ICONS } from '../../constants';
/** /**
* Renders the badge for the pipeline graph and the job's dropdown. * Renders the badge for the pipeline graph and the job's dropdown.

Some files were not shown because too many files have changed in this diff Show More