Skip to content

Commit 8f32fbe

Browse files
authored
Merge pull request #718 from Drulikar/deployment_tm_status_change
Deployment tab will now display whether TMs were added or updated
2 parents e31e470 + 6715f1b commit 8f32fbe

File tree

3 files changed

+78
-3
lines changed

3 files changed

+78
-3
lines changed

src/components/utils/DeploymentViewer.tsx

+49-3
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,11 @@ import { Badge, OverlayTrigger, Table, Tooltip } from "react-bootstrap";
99
import { FormattedMessage } from "react-intl";
1010
import { lt as SemverLessThan } from "semver";
1111

12-
import { CompileJobResponse, DreamDaemonSecurity } from "../../ApiClient/generatedcode/generated";
12+
import {
13+
CompileJobResponse,
14+
DreamDaemonSecurity,
15+
TestMerge
16+
} from "../../ApiClient/generatedcode/generated";
1317
import { InstanceEditContext } from "../../contexts/InstanceEditContext";
1418
import Engine from "../views/Instance/Edit/Engine";
1519
import { DebugJsonViewer } from "./JsonViewer";
@@ -31,6 +35,7 @@ export interface CompileJobsPaging {
3135
export interface DeploymentsData {
3236
viewDataType: ViewDataType;
3337
compileJobs?: CompileJobResponse[];
38+
prevCompileJob?: CompileJobResponse | null;
3439
paging: CompileJobsPaging;
3540
}
3641

@@ -198,12 +203,19 @@ class DeploymentViewer extends React.Component<IProps, IState> {
198203
</React.Fragment>
199204
);
200205
}
206+
201207
private renderDeployments(viewData: DeploymentsData): React.ReactNode {
202208
return (
203209
<React.Fragment>
204210
{this.renderTable(
205211
<React.Fragment>
206-
{viewData.compileJobs!.map(compileJob => this.renderCompileJob(compileJob))}
212+
{viewData.compileJobs!.map((compileJob, i, jobs) => {
213+
if (i < jobs.length - 1) {
214+
return this.renderCompileJob(compileJob, jobs[i + 1]);
215+
} else {
216+
return this.renderCompileJob(compileJob, viewData.prevCompileJob);
217+
}
218+
})}
207219
</React.Fragment>
208220
)}
209221
<PageHelper
@@ -216,7 +228,32 @@ class DeploymentViewer extends React.Component<IProps, IState> {
216228
);
217229
}
218230

219-
private renderCompileJob(compileJob: CompileJobResponse) {
231+
private getTestMergeDiffStatus(
232+
testMerge: TestMerge,
233+
previousCompileJob?: CompileJobResponse | null
234+
) {
235+
const oldTestMerges = previousCompileJob?.revisionInformation?.activeTestMerges;
236+
if (!oldTestMerges || oldTestMerges.length == 0) {
237+
return <FormattedMessage id="view.utils.deployment_viewer.table.pr.tm_diff.tm_added" />;
238+
}
239+
for (let index = 0; index < oldTestMerges.length; index++) {
240+
const oldTestMerge = oldTestMerges[index];
241+
if (oldTestMerge.number == testMerge.number) {
242+
if (oldTestMerge.targetCommitSha != testMerge.targetCommitSha) {
243+
return (
244+
<FormattedMessage id="view.utils.deployment_viewer.table.pr.tm_diff.tm_updated" />
245+
);
246+
}
247+
return "";
248+
}
249+
}
250+
return <FormattedMessage id="view.utils.deployment_viewer.table.pr.tm_diff.tm_added" />;
251+
}
252+
253+
private renderCompileJob(
254+
compileJob: CompileJobResponse,
255+
previousCompileJob?: CompileJobResponse | null
256+
) {
220257
const engineVersion = Engine.friendlyVersion(compileJob.engineVersion);
221258

222259
// we use en-GB so we get the fucking SANE DD/MM/YYYY
@@ -354,6 +391,9 @@ class DeploymentViewer extends React.Component<IProps, IState> {
354391
<th>
355392
<FormattedMessage id="view.utils.deployment_viewer.table.pr.number" />
356393
</th>
394+
<th>
395+
<FormattedMessage id="view.utils.deployment_viewer.table.pr.tm_diff" />
396+
</th>
357397
<th>
358398
<FormattedMessage id="view.utils.deployment_viewer.table.pr.title" />
359399
</th>
@@ -378,6 +418,12 @@ class DeploymentViewer extends React.Component<IProps, IState> {
378418
<td>
379419
<a href={testMerge.url}>#{testMerge.number}</a>
380420
</td>
421+
<td>
422+
{this.getTestMergeDiffStatus(
423+
testMerge,
424+
previousCompileJob
425+
)}
426+
</td>
381427
<td>
382428
<a href={testMerge.url}>
383429
{testMerge.titleAtMerge}

src/components/views/Instance/Edit/Deployment.tsx

+26
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ export function Deployment(): JSX.Element {
3131
const [isLoading, setIsLoading] = useState(true);
3232
const [deployInfo, setDeployInfo] = useState<DreamMakerResponse | null>(null);
3333
const [compileJobs, setCompileJobs] = useState<CompileJobResponse[] | null>(null);
34+
const [prevCompileJob, setPrevCompileJob] = useState<CompileJobResponse | null>(null);
3435
const [compileJobsPage, setCompileJobsPage] = useState<number>(1);
3536
const [compileJobsTotalPages, setCompileJobsTotalPages] = useState<number>(0);
3637

@@ -82,6 +83,30 @@ export function Deployment(): JSX.Element {
8283
setCompileJobsTotalPages(response.payload.totalPages);
8384
setCompileJobsPage(page);
8485
setCompileJobs(response.payload.content);
86+
87+
// also grab the job on the next page if possible
88+
if (
89+
response.payload.content.length == compileJobsPageSize &&
90+
response.payload.totalPages > page
91+
) {
92+
const extraResponse = await DreamMakerClient.listCompileJobs(
93+
instanceEditContext.instance.id,
94+
{
95+
page: compileJobsPageSize * page + 1,
96+
pageSize: 1
97+
}
98+
);
99+
if (
100+
extraResponse.code === StatusCode.OK &&
101+
extraResponse.payload.content.length > 0
102+
) {
103+
setPrevCompileJob(extraResponse.payload.content[0]);
104+
} else {
105+
setPrevCompileJob(null);
106+
}
107+
} else {
108+
setPrevCompileJob(null);
109+
}
85110
} else {
86111
addError(errorState, response.error);
87112
}
@@ -189,6 +214,7 @@ export function Deployment(): JSX.Element {
189214
deploymentViewData = {
190215
viewDataType: ViewDataType.CompileJobs,
191216
compileJobs,
217+
prevCompileJob,
192218
paging
193219
};
194220
}

src/translations/locales/en.json

+3
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,9 @@
215215
"view.utils.deployment_viewer.table.started_by": "Started By",
216216
"view.utils.deployment_viewer.table.project": "Project Name",
217217
"view.utils.deployment_viewer.table.pr.number": "Test Merge #",
218+
"view.utils.deployment_viewer.table.pr.tm_diff": "Change",
219+
"view.utils.deployment_viewer.table.pr.tm_diff.tm_added": "Added",
220+
"view.utils.deployment_viewer.table.pr.tm_diff.tm_updated": "Updated",
218221
"view.utils.deployment_viewer.table.pr.title": "Title",
219222
"view.utils.deployment_viewer.table.pr.merged_by": "Merged By",
220223
"view.utils.deployment_viewer.table.pr.merged_at": "Merged At",

0 commit comments

Comments
 (0)