From 3abbaa889946893e76dd16e38c6d58be4eb39a5f Mon Sep 17 00:00:00 2001
From: caishi <1149225589@qq.com>
Date: Thu, 27 Aug 2020 15:15:03 +0800
Subject: [PATCH] devops
---
src/forge/DevOps/About.jsx | 120 ++++++++++++-----------
src/forge/DevOps/Dispose.jsx | 1 -
src/forge/DevOps/OpsDetailLeftpanel.jsx | 6 +-
src/forge/DevOps/OpsDetailRightpanel.jsx | 86 ++++++++++------
src/forge/DevOps/opsDetail.jsx | 28 ++----
src/forge/Main/Detail.js | 16 ++-
6 files changed, 136 insertions(+), 121 deletions(-)
diff --git a/src/forge/DevOps/About.jsx b/src/forge/DevOps/About.jsx
index 88c6e523d..02d45a5b0 100644
--- a/src/forge/DevOps/About.jsx
+++ b/src/forge/DevOps/About.jsx
@@ -35,6 +35,8 @@ function About(props, ref) {
const owner = props.match.params.owner;
const projectsId = props.match.params.projectsId;
+ const AuthorLogin = props.author && props.author.login;
+ const CurrentLogin = props.current_user && props.current_user.login;
useEffect(()=>{
auth('get');
@@ -188,68 +190,74 @@ function About(props, ref) {
-
- 定义DevOps工作流,帮助您检测bug、发布代码…
-
- 了解什么是DevOps?
-
- {step <=1?
+
+ 定义DevOps工作流,帮助您检测bug、发布代码…
+
+ 了解什么是DevOps?
+
+ {
+ AuthorLogin === CurrentLogin ?
-
- 下一步
-
- :""}
-
- {step >= 2 &&(
-
- )}
+ 下一步
+
+ :""}
+ {step >= 2 &&(
+
+ )}
+
+ :""
+ }
+
);
diff --git a/src/forge/DevOps/Dispose.jsx b/src/forge/DevOps/Dispose.jsx
index 54b8fe5f9..d4bd543bc 100644
--- a/src/forge/DevOps/Dispose.jsx
+++ b/src/forge/DevOps/Dispose.jsx
@@ -19,7 +19,6 @@ function Dispose(props){
let projectsId = props.match.params.projectsId;
let owner = props.match.params.owner;
-
useEffect(()=>{
if(projectsId){
const url = `/${owner}/${projectsId}/get_trustie_pipeline.json`;
diff --git a/src/forge/DevOps/OpsDetailLeftpanel.jsx b/src/forge/DevOps/OpsDetailLeftpanel.jsx
index 40d396e4b..2df2d0a44 100644
--- a/src/forge/DevOps/OpsDetailLeftpanel.jsx
+++ b/src/forge/DevOps/OpsDetailLeftpanel.jsx
@@ -62,8 +62,8 @@ export default ({ data, repeatSet , chooseSteps }) => {
}
}
- function clickSub(e,stageN,stepN,stageName){
- chooseSteps(stageN,stepN,stageName);
+ function clickSub(e,stageN,stepN){
+ chooseSteps(stageN,stepN);
}
return (
@@ -107,7 +107,7 @@ export default ({ data, repeatSet , chooseSteps }) => {
>
{item.steps.map((i, k) => {
return (
- clickSub(e,item.number,i.id,item.name)}>
+ clickSub(e,item.number,i.id)}>
{i.name} {i.status ? TagsLine(i.status) : ""}
diff --git a/src/forge/DevOps/OpsDetailRightpanel.jsx b/src/forge/DevOps/OpsDetailRightpanel.jsx
index 17a45dbd8..f5ca0a8a3 100644
--- a/src/forge/DevOps/OpsDetailRightpanel.jsx
+++ b/src/forge/DevOps/OpsDetailRightpanel.jsx
@@ -3,16 +3,38 @@ import { Spin } from 'antd';
import { FlexAJ, AlignCenter } from "../Component/layout";
import axios from 'axios';
-export default (({ step , stageNumber , stageName , projectId , owner , opsId , rightSpin }) => {
+export default (({ data , stepN , stageN , projectId , owner , opsId , rightSpin }) => {
const [ coders , setCoders ] = useState(undefined);
const [ empty , setEmpty ] = useState(false);
const [ spining , setSpining ] = useState(true);
+ const [ stage , setStage]= useState(undefined);
+ const [ step , setStep]= useState(undefined);
useEffect(()=>{
setSpining(rightSpin);
},[rightSpin])
+
useEffect(()=>{
- if(projectId && stageNumber && step){
- const url = `/${owner}/${projectId}/builds/${opsId}/logs/${stageNumber}/${step && step.number}.json`;
+ if(data){
+ let stages = data.stages;
+ if(stages && stages.length>0){
+ let pre = stageN ? stages.filter(item=>item.number===stageN)[0] : stages[0];
+ setStage(pre);
+ let p = pre && pre.steps;
+ let sub = stepN ? p && p.length > 0 && p.filter(item=>item.id===stepN)[0] : p[0];
+
+ setStep(sub);
+ if(sub){
+ getStep(pre.number,sub.number);
+ }
+ }else{
+ setSpining(false);
+ }
+ }
+ },[data,stageN,stepN])
+
+ function getStep(stageN,stepN){
+ if(stageN && stepN){
+ const url = `/${owner}/${projectId}/builds/${opsId}/logs/${stageN}/${stepN}.json`;
axios.get(url).then(result=>{
if(result){
setCoders(result.data);
@@ -24,38 +46,42 @@ export default (({ step , stageNumber , stageName , projectId , owner , opsId ,
console.log(error);
})
}
- },[projectId , stageNumber, step])
-
+ }
return (
-
-
- {step && step.name}
-
- { step && step.duration_time}
-
-
-
+ {
+ data && data.status !== "error" ?
- {
- coders && coders.length>0 ? coders.map((item,key)=>{
- return(
-
- )
- }):
- empty ?
-
-
1
-
{stageName} – {step && step.name}: Skipped
-
- :""
- }
+
+ {step && step.name}
+
+ { step && step.duration_time}
+
+
+
+
+ {
+ coders && coders.length>0 ? coders.map((item,key)=>{
+ return(
+
+ )
+ }):
+ empty ?
+
+
1
+
{stage && stage.name} – {step && step.name}: Skipped
+
+ :""
+ }
+
-
+ :
+
error:{ data && data.error }
+ }
);
diff --git a/src/forge/DevOps/opsDetail.jsx b/src/forge/DevOps/opsDetail.jsx
index 0ee2a69d9..92f620a74 100644
--- a/src/forge/DevOps/opsDetail.jsx
+++ b/src/forge/DevOps/opsDetail.jsx
@@ -11,11 +11,9 @@ import { Link } from "react-router-dom";
export default (props) => {
const [data, setData] = useState(undefined);
- const [stages, setStages] = useState(undefined);
- const [ rightStageName , setRightStageName ] = useState(undefined);
- const [rightStep, setRightStep] = useState(undefined);
+ const [stageN, setStageN] = useState(undefined);
+ const [stepN, setStepN] = useState(undefined);
const [rightSpin, setRightSpin] = useState(false);
- const [rightStageNumber, setRightStageNumber] = useState(undefined);
const [spinning, setSpinning] = useState(true);
let projectId = props.match.params.projectId;
@@ -34,14 +32,6 @@ export default (props) => {
if (result && result.data) {
setSpinning(false);
setData(result.data);
- let stages = result.data.stages;
- setStages(stages);
- let firstStage = stages && stages.length > 0 && stages[0];
- let firstStep = firstStage && firstStage.steps && firstStage.steps.length>0 && firstStage.steps[0];
- setRightStep(firstStep);
- setRightSpin(true);
- setRightStageName(firstStage && firstStage.name);
- setRightStageNumber(firstStage && firstStage.number);
}
})
.catch((error) => {
@@ -79,14 +69,10 @@ export default (props) => {
}
}
- function chooseSteps(stageN,stepN,stageName){
- if(stageN && stepN && stages){
- let stage = stages && stages.length>0 && stages.filter(item=>item.number===stageN)[0];
- let s = stage.steps && stage.steps.length > 0 && stage.steps.filter(item=>item.id===stepN);
-
- s && s.length>0 && setRightStep(s[0]);
- setRightStageNumber(stageN);
- setRightStageName(stageName);
+ function chooseSteps(pre,sub){
+ if(pre && sub){
+ setStepN(sub);
+ setStageN(pre);
setRightSpin(true);
}
}
@@ -118,7 +104,7 @@ export default (props) => {
diff --git a/src/forge/Main/Detail.js b/src/forge/Main/Detail.js
index 55f25e30f..9d12a23dc 100644
--- a/src/forge/Main/Detail.js
+++ b/src/forge/Main/Detail.js
@@ -487,16 +487,12 @@ class Detail extends Component {
}
- {
- current_user && author && current_user.login === author.login ?
-
-
- 工作流
- {projectDetail && projectDetail.ops_count ? {projectDetail.ops_count} : ""}
-
- :""
- }
-
+
+
+ 工作流
+ {projectDetail && projectDetail.ops_count ? {projectDetail.ops_count} : ""}
+
+
里程碑