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 ? -
-

请仔细核对您的服务器信息,一旦确认提交将无法修改

- {helper( - "服务器IP地址:", - "ip_num", - [{ required: true, message: "请输入服务器IP地址" }], - , - true - )} - {helper( - "服务器用户名:", - "account", - [{ required: true, message: "请输入服务器用户名" }], - , - true - )} - {helper( - "服务器密码:", - "secret", - [{ required: true, message: "请输入服务器密码" }], - , - true - )} - - 下一步 -
- :""} - - {step >= 2 &&( -
+ { step <= 1 ? +
-

认证成功后,请前往{cloudAccount && cloudAccount.get_drone_token_url}获取token值,并将获取的token值填入输入框

+

请仔细核对您的服务器信息,一旦确认提交将无法修改

{helper( - "token值:", - "drone_token", - [{ required: true, message: "请输入token值" }], - , + "服务器IP地址:", + "ip_num", + [{ required: true, message: "请输入服务器IP地址" }], + , + true + )} + {helper( + "服务器用户名:", + "account", + [{ required: true, message: "请输入服务器用户名" }], + , + true + )} + {helper( + "服务器密码:", + "secret", + [{ required: true, message: "请输入服务器密码" }], + , true )} -
- { - step === 2? - 开始激活 - : - 完成 - } -
-
- )} + 下一步 + + :""} + {step >= 2 &&( +
+
+

认证成功后,请前往{cloudAccount && cloudAccount.get_drone_token_url}获取token值,并将获取的token值填入输入框

+ {helper( + "token值:", + "drone_token", + [{ required: true, message: "请输入token值" }], + , + true + )} +
+ { + 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( -
- {key+1} -

{item.out}

-
- ) - }): - empty ? -
- 1 -

{stageName} – {step && step.name}: Skipped

-
- :"" - } + + {step && step.name} + + { step && step.duration_time} + + + +
+ { + coders && coders.length>0 ? coders.map((item,key)=>{ + return( +
+ {key+1} +

{item.out}

+
+ ) + }): + 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} : ""} + +
  • 里程碑