1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
<script>
import { flatten } from 'lodash';
import { CI_CONFIG_STATUS_VALID } from '../../constants';
import CiLintResults from './ci_lint_results.vue';
export default {
components: {
CiLintResults,
},
inject: {
lintHelpPagePath: {
default: '',
},
},
props: {
ciConfig: {
type: Object,
required: true,
},
},
computed: {
isValid() {
return this.ciConfig?.status === CI_CONFIG_STATUS_VALID;
},
stages() {
return this.ciConfig?.stages || [];
},
jobs() {
const groupedJobs = this.stages.reduce((acc, { groups, name: stageName }) => {
return acc.concat(
groups.map(({ jobs }) => {
return jobs.map((job) => ({
stage: stageName,
...job,
}));
}),
);
}, []);
return flatten(groupedJobs);
},
},
};
</script>
<template>
<ci-lint-results
:valid="isValid"
:jobs="jobs"
:errors="ciConfig.errors"
:lint-help-page-path="lintHelpPagePath"
/>
</template>
|