mirror of
https://github.com/harness/drone.git
synced 2025-05-10 00:11:43 +08:00
Added Run pipeline drawer
This commit is contained in:
parent
e8e6d09166
commit
c90233ff49
@ -184,6 +184,7 @@ export interface StringsMap {
|
||||
failedToCreateSpace: string
|
||||
failedToDeleteBranch: string
|
||||
failedToDeleteWebhook: string
|
||||
failedToSavePipeline: string
|
||||
fileDeleted: string
|
||||
fileTooLarge: string
|
||||
files: string
|
||||
@ -322,6 +323,7 @@ export interface StringsMap {
|
||||
'pipelines.name': string
|
||||
'pipelines.newPipelineButton': string
|
||||
'pipelines.noData': string
|
||||
'pipelines.run': string
|
||||
'pipelines.saveAndRun': string
|
||||
'pipelines.yamlPath': string
|
||||
'pr.ableToMerge': string
|
||||
@ -456,6 +458,7 @@ export interface StringsMap {
|
||||
reviewerNotFound: string
|
||||
reviewers: string
|
||||
role: string
|
||||
run: string
|
||||
running: string
|
||||
samplePayloadUrl: string
|
||||
save: string
|
||||
|
@ -587,6 +587,7 @@ spaceMemberships:
|
||||
memberAdded: Member added successfully.
|
||||
failedToCreateSpace: Failed to create Space. Please try again.
|
||||
failedToCreatePipeline: Failed to create Pipeline. Please try again.
|
||||
failedToSavePipeline: Failed to save Pipeline. Please try again.
|
||||
enterName: Enter the name
|
||||
createASpace: Create a space
|
||||
createSpace: Create Space
|
||||
@ -633,6 +634,7 @@ pipelines:
|
||||
failedToCreatePipeline: Failed to create pipeline
|
||||
saveAndRun: Save and Run
|
||||
editPipeline: Edit pipeline {{pipeline}}
|
||||
run: Run pipeline
|
||||
executions:
|
||||
noData: There are no executions :(
|
||||
newExecutionButton: New Execution
|
||||
@ -648,3 +650,4 @@ secrets:
|
||||
value: Secret Value
|
||||
createSecret: Create Secret
|
||||
userUpdateSuccess: 'User updated successfully'
|
||||
run: Run
|
||||
|
@ -23,3 +23,7 @@
|
||||
.breadcrumb {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.drawer {
|
||||
height: calc(100% - 40px);
|
||||
}
|
||||
|
@ -6,5 +6,6 @@ declare const styles: {
|
||||
readonly editorContainer: string
|
||||
readonly header: string
|
||||
readonly breadcrumb: string
|
||||
readonly drawer: string
|
||||
}
|
||||
export default styles
|
||||
|
@ -1,7 +1,8 @@
|
||||
import React, { useState } from 'react'
|
||||
import { useMutate } from 'restful-react'
|
||||
import { Link, useParams } from 'react-router-dom'
|
||||
import { Container, PageHeader, PageBody, Button, Layout, ButtonVariation, Text } from '@harnessio/uicore'
|
||||
import { Drawer } from '@blueprintjs/core'
|
||||
import { Container, PageHeader, PageBody, Button, Layout, ButtonVariation, Text, useToaster } from '@harnessio/uicore'
|
||||
import { Icon } from '@harnessio/icons'
|
||||
import { Color } from '@harnessio/design-system'
|
||||
import type { OpenapiCommitFilesRequest, RepoCommitFilesResponse } from 'services/code'
|
||||
@ -10,6 +11,7 @@ import { useGetSpaceParam } from 'hooks/useGetSpaceParam'
|
||||
import { SourceCodeEditor } from 'components/SourceCodeEditor/SourceCodeEditor'
|
||||
import { useAppContext } from 'AppContext'
|
||||
import type { CODEProps } from 'RouteDefinitions'
|
||||
import { getErrorMessage } from 'utils/Utils'
|
||||
|
||||
import css from './NewPipeline.module.scss'
|
||||
|
||||
@ -18,7 +20,9 @@ const NewPipeline = (): JSX.Element => {
|
||||
const { getString } = useStrings()
|
||||
const { pipeline } = useParams<CODEProps>()
|
||||
const space = useGetSpaceParam()
|
||||
const { showError } = useToaster()
|
||||
const [pipelineAsYAML, setPipelineAsYaml] = useState<string>('')
|
||||
const [showDrawer, setShowDrawer] = useState<boolean>(false)
|
||||
|
||||
const { mutate, loading } = useMutate<RepoCommitFilesResponse>({
|
||||
verb: 'POST',
|
||||
@ -26,56 +30,78 @@ const NewPipeline = (): JSX.Element => {
|
||||
})
|
||||
|
||||
const handleSaveAndRun = (): void => {
|
||||
const data: OpenapiCommitFilesRequest = {
|
||||
actions: [{ action: 'CREATE', path: `sample_${new Date().getTime()}.txt`, payload: pipelineAsYAML }],
|
||||
branch: 'main',
|
||||
new_branch: '',
|
||||
title: `Create pipeline ${pipeline}`,
|
||||
message: ''
|
||||
}
|
||||
try {
|
||||
const data: OpenapiCommitFilesRequest = {
|
||||
actions: [{ action: 'CREATE', path: `sample_${new Date().getTime()}.txt`, payload: pipelineAsYAML }],
|
||||
branch: 'main',
|
||||
new_branch: '',
|
||||
title: `Create pipeline ${pipeline}`,
|
||||
message: ''
|
||||
}
|
||||
|
||||
mutate(data)
|
||||
.then(response => console.log(response))
|
||||
.catch(error => console.log(error))
|
||||
mutate(data)
|
||||
.then(() => setShowDrawer(true))
|
||||
.catch(error => {
|
||||
showError(getErrorMessage(error), 0, 'pipelines.failedToSavePipeline')
|
||||
})
|
||||
} catch (exception) {
|
||||
showError(getErrorMessage(exception), 0, 'pipelines.failedToCreatePipeline')
|
||||
}
|
||||
}
|
||||
|
||||
return (
|
||||
<Container className={css.main}>
|
||||
<PageHeader
|
||||
title={getString('pipelines.editPipeline', { pipeline })}
|
||||
breadcrumbs={
|
||||
<Container className={css.header}>
|
||||
<Layout.Horizontal spacing="small" className={css.breadcrumb}>
|
||||
<Link to={routes.toCODEPipelines({ space })}>{getString('pageTitle.pipelines')}</Link>
|
||||
<Icon name="main-chevron-right" size={8} color={Color.GREY_500} />
|
||||
<Text font={{ size: 'small' }}>{pipeline}</Text>
|
||||
<>
|
||||
{showDrawer && (
|
||||
<Drawer isOpen={showDrawer} title={getString('pipelines.run')} onClose={() => setShowDrawer(false)}>
|
||||
<Layout.Vertical padding="xlarge" flex={{ justifyContent: 'flex-end' }} className={css.drawer}>
|
||||
<Layout.Horizontal spacing="medium" flex={{ justifyContent: 'flex-start' }} width="100%">
|
||||
<Button variation={ButtonVariation.PRIMARY} text={getString('run')} />
|
||||
<Button
|
||||
variation={ButtonVariation.SECONDARY}
|
||||
text={getString('cancel')}
|
||||
onClick={() => setShowDrawer(false)}
|
||||
/>
|
||||
</Layout.Horizontal>
|
||||
</Container>
|
||||
}
|
||||
content={
|
||||
<Layout.Horizontal flex={{ justifyContent: 'space-between' }}>
|
||||
<Button
|
||||
variation={ButtonVariation.PRIMARY}
|
||||
text={getString('pipelines.saveAndRun')}
|
||||
onClick={handleSaveAndRun}
|
||||
disabled={loading}
|
||||
</Layout.Vertical>
|
||||
</Drawer>
|
||||
)}
|
||||
<Container className={css.main}>
|
||||
<PageHeader
|
||||
title={getString('pipelines.editPipeline', { pipeline })}
|
||||
breadcrumbs={
|
||||
<Container className={css.header}>
|
||||
<Layout.Horizontal spacing="small" className={css.breadcrumb}>
|
||||
<Link to={routes.toCODEPipelines({ space })}>{getString('pageTitle.pipelines')}</Link>
|
||||
<Icon name="main-chevron-right" size={8} color={Color.GREY_500} />
|
||||
<Text font={{ size: 'small' }}>{pipeline}</Text>
|
||||
</Layout.Horizontal>
|
||||
</Container>
|
||||
}
|
||||
content={
|
||||
<Layout.Horizontal flex={{ justifyContent: 'space-between' }}>
|
||||
<Button
|
||||
variation={ButtonVariation.PRIMARY}
|
||||
text={getString('pipelines.saveAndRun')}
|
||||
onClick={handleSaveAndRun}
|
||||
disabled={loading}
|
||||
/>
|
||||
</Layout.Horizontal>
|
||||
}
|
||||
/>
|
||||
<PageBody>
|
||||
<Container className={css.editorContainer}>
|
||||
<SourceCodeEditor
|
||||
language={'yaml'}
|
||||
source={
|
||||
'stages:\n- type: ci\n spec:\n steps:\n - type: script\n spec:\n run: echo hello world'
|
||||
}
|
||||
onChange={(value: string) => setPipelineAsYaml(value)}
|
||||
autoHeight
|
||||
/>
|
||||
</Layout.Horizontal>
|
||||
}
|
||||
/>
|
||||
<PageBody>
|
||||
<Container className={css.editorContainer}>
|
||||
<SourceCodeEditor
|
||||
language={'yaml'}
|
||||
source={
|
||||
'stages:\n- type: ci\n spec:\n steps:\n - type: script\n spec:\n run: echo hello world'
|
||||
}
|
||||
onChange={(value: string) => setPipelineAsYaml(value)}
|
||||
autoHeight
|
||||
/>
|
||||
</Container>
|
||||
</PageBody>
|
||||
</Container>
|
||||
</Container>
|
||||
</PageBody>
|
||||
</Container>
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -46,8 +46,8 @@ const useNewPipelineModal = () => {
|
||||
history.push(routes.toCODEPipelineEdit({ space, pipeline: name }))
|
||||
hideModal()
|
||||
})
|
||||
.catch(_error => {
|
||||
showError(getErrorMessage(_error), 0, 'pipelines.failedToCreatePipeline')
|
||||
.catch(error => {
|
||||
showError(getErrorMessage(error), 0, 'pipelines.failedToCreatePipeline')
|
||||
})
|
||||
} catch (exception) {
|
||||
showError(getErrorMessage(exception), 0, 'pipelines.failedToCreatePipeline')
|
||||
|
Loading…
Reference in New Issue
Block a user