Skip to content

Commit 9b4ffde

Browse files
committed
feat: enhance target platforms integration across components and services
1 parent 11d8483 commit 9b4ffde

File tree

9 files changed

+78
-44
lines changed

9 files changed

+78
-44
lines changed

src/Shared/Components/ArtifactInfoModal/ArtifactInfoModal.component.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ const ArtifactInfoModal = ({
126126
tagsEditable={artifactInfo.tagsEditable}
127127
hideImageTaggingHardDelete={false}
128128
renderCIListHeader={renderCIListHeader}
129+
targetPlatforms={artifactInfo.targetPlatforms}
129130
/>
130131
</div>
131132
) : (

src/Shared/Components/CICDHistory/Artifacts.tsx

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import noartifact from '../../../Assets/Img/no-artifact@2x.png'
3535
import { ArtifactType, CIListItemType } from './types'
3636
import { TERMINAL_STATUS_MAP } from './constants'
3737
import { EMPTY_STATE_STATUS } from '../../constants'
38+
import { TargetPlatformBadgeList } from '../TargetPlatforms'
3839

3940
const CIProgressView = (): JSX.Element => (
4041
<GenericEmptyState
@@ -62,6 +63,7 @@ export const CIListItem = ({
6263
appliedFiltersTimestamp,
6364
selectedEnvironmentName,
6465
renderCIListHeader,
66+
targetPlatforms,
6567
}: CIListItemType) => {
6668
const headerMetaDataPresent =
6769
!!userApprovalMetadata || !!appliedFilters?.length || !!promotionApprovalMetadata?.promotedFromType
@@ -99,6 +101,13 @@ export const CIListItem = ({
99101
</div>
100102
{children}
101103
</div>
104+
105+
{targetPlatforms?.length && (
106+
<div className="mt-8 flexbox-col dc__gap-8">
107+
<TargetPlatformBadgeList targetPlatforms={targetPlatforms} />
108+
</div>
109+
)}
110+
102111
{type !== 'report' && (
103112
<ImageTagsContainer
104113
ciPipelineId={ciPipelineId}
@@ -132,6 +141,7 @@ const Artifacts = ({
132141
hideImageTaggingHardDelete,
133142
rootClassName,
134143
renderCIListHeader,
144+
targetPlatforms,
135145
}: ArtifactType) => {
136146
const { isSuperAdmin } = useSuperAdmin()
137147
const { handleDownload } = useDownload()
@@ -204,6 +214,7 @@ const Artifacts = ({
204214
hideImageTaggingHardDelete={hideImageTaggingHardDelete}
205215
isSuperAdmin={isSuperAdmin}
206216
renderCIListHeader={renderCIListHeader}
217+
targetPlatforms={targetPlatforms}
207218
>
208219
<div className="flex column left hover-trigger">
209220
<div className="cn-9 fs-14 flex left" data-testid="artifact-text-visibility">
@@ -227,6 +238,8 @@ const Artifacts = ({
227238
hideImageTaggingHardDelete={hideImageTaggingHardDelete}
228239
isSuperAdmin={isSuperAdmin}
229240
renderCIListHeader={renderCIListHeader}
241+
// FIXME: Remove
242+
targetPlatforms={[]}
230243
>
231244
<div className="flex column left">
232245
<div className="cn-9 fs-14">Reports.zip</div>

src/Shared/Components/CICDHistory/History.components.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@ export const GitChanges = ({
129129
promotionApprovalMetadata,
130130
selectedEnvironmentName,
131131
renderCIListHeader,
132+
targetPlatforms,
132133
}: GitChangesType) => {
133134
const { isSuperAdmin } = useSuperAdmin()
134135

@@ -192,6 +193,7 @@ export const GitChanges = ({
192193
promotionApprovalMetadata={promotionApprovalMetadata}
193194
selectedEnvironmentName={selectedEnvironmentName}
194195
renderCIListHeader={renderCIListHeader}
196+
targetPlatforms={targetPlatforms}
195197
>
196198
<div className="flex column left hover-trigger">
197199
<div className="cn-9 fs-14 flex left">

src/Shared/Components/CICDHistory/LogStageAccordion.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ const LogStageAccordion = ({
9999
</div>
100100
</Tooltip>
101101

102-
<div className="dc__bullet--white dc__bullet" />
102+
{!!endTime && <div className="dc__bullet--white dc__bullet" />}
103103
</>
104104
)}
105105

src/Shared/Components/CICDHistory/TriggerOutput.tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import { Redirect, Route, Switch, useLocation, useParams, useRouteMatch, Link, N
1818
import React, { useEffect, useMemo, useState } from 'react'
1919
import moment from 'moment'
2020
import { ShowMoreText } from '@Shared/Components/ShowMoreText'
21-
import { getHandleOpenURL } from '@Shared/Helpers'
21+
import { getHandleOpenURL, sanitizeTargetPlatforms } from '@Shared/Helpers'
2222
import { ImageChipCell } from '@Shared/Components/ImageChipCell'
2323
import { CommitChipCell } from '@Shared/Components/CommitChipCell'
2424
import { ReactComponent as ICLines } from '@Icons/ic-lines.svg'
@@ -508,6 +508,7 @@ const HistoryLogs: React.FC<HistoryLogsProps> = ({
508508
fullScreenView,
509509
appName,
510510
triggerHistory,
511+
targetPlatforms,
511512
}) => {
512513
const { path } = useRouteMatch()
513514
const { appId, pipelineId, triggerId, envId } = useParams<{
@@ -587,6 +588,7 @@ const HistoryLogs: React.FC<HistoryLogsProps> = ({
587588
selectedEnvironmentName={selectedEnvironmentName}
588589
promotionApprovalMetadata={triggerDetails?.promotionApprovalMetadata}
589590
renderCIListHeader={renderCIListHeader}
591+
targetPlatforms={targetPlatforms}
590592
/>
591593
</Route>
592594
{triggerDetails.stage === 'DEPLOY' && (
@@ -626,6 +628,7 @@ const HistoryLogs: React.FC<HistoryLogsProps> = ({
626628
hideImageTaggingHardDelete={hideImageTaggingHardDelete}
627629
downloadArtifactUrl={CDBuildReportUrl}
628630
renderCIListHeader={renderCIListHeader}
631+
targetPlatforms={targetPlatforms}
629632
rootClassName="p-16 flex-grow-1"
630633
/>
631634
)}
@@ -688,6 +691,8 @@ const TriggerOutput = ({
688691
!!triggerId && !!pipelineId,
689692
)
690693

694+
const targetPlatforms = sanitizeTargetPlatforms(triggerDetails?.targetPlatforms)
695+
691696
// Function to sync the trigger details as trigger details is also fetched with another api
692697
const syncState = (syncTriggerId: number, syncTriggerDetail: History, syncTriggerDetailsError: ServerError) => {
693698
if (syncTriggerDetailsError) {
@@ -924,6 +929,7 @@ const TriggerOutput = ({
924929
fullScreenView={fullScreenView}
925930
appName={appName}
926931
triggerHistory={triggerHistory}
932+
targetPlatforms={targetPlatforms}
927933
/>
928934
</>
929935
)

src/Shared/Components/CICDHistory/types.tsx

Lines changed: 47 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ import {
4040
TargetPlatformsDTO,
4141
} from '../../types'
4242
import { TERMINAL_STATUS_MAP } from './constants'
43+
import { TargetPlatformBadgeListProps } from '../TargetPlatforms'
4344

4445
export enum HistoryComponentType {
4546
CI = 'CI',
@@ -112,7 +113,7 @@ export interface TargetConfigType {
112113
releaseChannelName?: string
113114
}
114115

115-
export interface History {
116+
export interface History extends Pick<TargetPlatformsDTO, 'targetPlatforms'> {
116117
id: number
117118
name: string
118119
status: string
@@ -392,6 +393,28 @@ export interface VirtualHistoryArtifactProps {
392393
workflowId: number
393394
}
394395
}
396+
397+
export interface CIListItemType
398+
extends Pick<History, 'promotionApprovalMetadata'>,
399+
Required<Pick<TargetPlatformBadgeListProps, 'targetPlatforms'>> {
400+
type: 'report' | 'artifact' | 'deployed-artifact'
401+
userApprovalMetadata?: UserApprovalMetadataType
402+
triggeredBy?: string
403+
children: any
404+
ciPipelineId?: number
405+
artifactId?: number
406+
imageComment?: ImageComment
407+
imageReleaseTags?: ReleaseTag[]
408+
appReleaseTagNames?: string[]
409+
tagsEditable?: boolean
410+
hideImageTaggingHardDelete?: boolean
411+
appliedFilters?: FilterConditionsListType[]
412+
appliedFiltersTimestamp?: string
413+
isSuperAdmin?: boolean
414+
selectedEnvironmentName?: string
415+
renderCIListHeader: (renderCIListHeaderProps: RenderCIListHeaderProps) => JSX.Element
416+
}
417+
395418
export interface TriggerOutputProps extends RenderRunSourceType, Pick<TriggerDetailsType, 'renderTargetConfigInfo'> {
396419
fullScreenView: boolean
397420
triggerHistory: Map<number, History>
@@ -421,24 +444,25 @@ export interface TriggerOutputProps extends RenderRunSourceType, Pick<TriggerDet
421444

422445
export interface HistoryLogsProps
423446
extends Pick<
424-
TriggerOutputProps,
425-
| 'scrollToTop'
426-
| 'scrollToBottom'
427-
| 'setFullScreenView'
428-
| 'deploymentAppType'
429-
| 'isBlobStorageConfigured'
430-
| 'appReleaseTags'
431-
| 'tagsEditable'
432-
| 'hideImageTaggingHardDelete'
433-
| 'selectedEnvironmentName'
434-
| 'processVirtualEnvironmentDeploymentData'
435-
| 'renderDeploymentApprovalInfo'
436-
| 'renderCIListHeader'
437-
| 'renderVirtualHistoryArtifacts'
438-
| 'fullScreenView'
439-
| 'appName'
440-
| 'triggerHistory'
441-
> {
447+
TriggerOutputProps,
448+
| 'scrollToTop'
449+
| 'scrollToBottom'
450+
| 'setFullScreenView'
451+
| 'deploymentAppType'
452+
| 'isBlobStorageConfigured'
453+
| 'appReleaseTags'
454+
| 'tagsEditable'
455+
| 'hideImageTaggingHardDelete'
456+
| 'selectedEnvironmentName'
457+
| 'processVirtualEnvironmentDeploymentData'
458+
| 'renderDeploymentApprovalInfo'
459+
| 'renderCIListHeader'
460+
| 'renderVirtualHistoryArtifacts'
461+
| 'fullScreenView'
462+
| 'appName'
463+
| 'triggerHistory'
464+
>,
465+
Pick<CIListItemType, 'targetPlatforms'> {
442466
triggerDetails: History
443467
loading: boolean
444468
userApprovalMetadata: UserApprovalMetadataType
@@ -598,7 +622,9 @@ export interface ScrollerType {
598622
style: CSSProperties
599623
}
600624

601-
export interface GitChangesType extends Pick<History, 'promotionApprovalMetadata'> {
625+
export interface GitChangesType
626+
extends Pick<History, 'promotionApprovalMetadata'>,
627+
Pick<CIListItemType, 'targetPlatforms' | 'selectedEnvironmentName'> {
602628
gitTriggers: Map<number, GitTriggers>
603629
ciMaterials: CiMaterial[]
604630
artifact?: string
@@ -613,11 +639,10 @@ export interface GitChangesType extends Pick<History, 'promotionApprovalMetadata
613639
hideImageTaggingHardDelete?: boolean
614640
appliedFilters?: FilterConditionsListType[]
615641
appliedFiltersTimestamp?: string
616-
selectedEnvironmentName?: string
617642
renderCIListHeader: (renderCIListHeaderProps: RenderCIListHeaderProps) => JSX.Element
618643
}
619644

620-
export interface ArtifactType {
645+
export interface ArtifactType extends Pick<CIListItemType, 'targetPlatforms'> {
621646
status: string
622647
artifact: string
623648
blobStorageEnabled: boolean
@@ -635,24 +660,6 @@ export interface ArtifactType {
635660
renderCIListHeader: (renderCIListHeaderProps: RenderCIListHeaderProps) => JSX.Element
636661
}
637662

638-
export interface CIListItemType extends Pick<GitChangesType, 'promotionApprovalMetadata' | 'selectedEnvironmentName'> {
639-
type: 'report' | 'artifact' | 'deployed-artifact'
640-
userApprovalMetadata?: UserApprovalMetadataType
641-
triggeredBy?: string
642-
children: any
643-
ciPipelineId?: number
644-
artifactId?: number
645-
imageComment?: ImageComment
646-
imageReleaseTags?: ReleaseTag[]
647-
appReleaseTagNames?: string[]
648-
tagsEditable?: boolean
649-
hideImageTaggingHardDelete?: boolean
650-
appliedFilters?: FilterConditionsListType[]
651-
appliedFiltersTimestamp?: string
652-
isSuperAdmin?: boolean
653-
renderCIListHeader: (renderCIListHeaderProps: RenderCIListHeaderProps) => JSX.Element
654-
}
655-
656663
export interface DeploymentHistory {
657664
id: number
658665
cd_workflow_id: number
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
export { default as TargetPlatformBadgeList } from './TargetPlatformBadgeList'
22
export { default as TargetPlatformListTooltip } from './TargetPlatformListTooltip'
3+
export * from './types'

src/Shared/Services/app.types.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616

1717
import { OverrideMergeStrategyType } from '@Pages/Applications'
18+
import { TargetPlatformsDTO } from '@Shared/types'
1819
import { ReleaseTag, UserApprovalMetadataType } from '../../Common'
1920

2021
interface WebhookDataType {
@@ -108,7 +109,7 @@ interface ImageTaggingDataType
108109
imageComment: ImageCommentType
109110
}
110111

111-
export interface CIMaterialInfoDTO {
112+
export interface CIMaterialInfoDTO extends Pick<TargetPlatformsDTO, 'targetPlatforms'> {
112113
ciPipelineId: number
113114
ciMaterials: CIMaterialDTO[]
114115
triggeredByEmail: string
@@ -133,7 +134,8 @@ export interface CIMaterialInfoType
133134
| 'image'
134135
| 'ciPipelineId'
135136
>,
136-
ImageTaggingDataType {
137+
ImageTaggingDataType,
138+
Pick<TargetPlatformsDTO, 'targetPlatforms'> {
137139
materials: CIMaterialType[]
138140
}
139141

src/Shared/Services/utils.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17+
import { sanitizeTargetPlatforms } from '@Shared/Helpers'
1718
import { createGitCommitUrl, handleUTCTime } from '../../Common'
1819
import { CIMaterialInfoDTO, CIMaterialInfoType } from './app.types'
1920

@@ -55,5 +56,6 @@ export const getParsedCIMaterialInfo = (ciMaterialData: CIMaterialInfoDTO): CIMa
5556
imageReleaseTags: ciMaterialData?.imageTaggingData?.imageReleaseTags,
5657
image: ciMaterialData?.image,
5758
tagsEditable: ciMaterialData?.imageTaggingData?.tagsEditable,
59+
targetPlatforms: sanitizeTargetPlatforms(ciMaterialData?.targetPlatforms),
5860
}
5961
}

0 commit comments

Comments
 (0)