From 6ff754eeb626d6d045500c1943b754d1e8f67b01 Mon Sep 17 00:00:00 2001 From: Sam Beckett Date: Tue, 25 Jan 2022 12:07:38 -0700 Subject: [PATCH 1/3] add trigger github build icon --- src/components/Releases/index.jsx | 71 +++++++++++++++++++++++++++++++ src/services/api/index.js | 5 +++ 2 files changed, 76 insertions(+) diff --git a/src/components/Releases/index.jsx b/src/components/Releases/index.jsx index fc611cd1..5c988a64 100644 --- a/src/components/Releases/index.jsx +++ b/src/components/Releases/index.jsx @@ -12,6 +12,8 @@ import BuildOutputIcon from '@material-ui/icons/Assignment'; import BuildIcon from '@material-ui/icons/Build'; import ReleaseIcon from '@material-ui/icons/Backup'; import RevertIcon from '@material-ui/icons/Replay'; +import AddCircleIcon from '@material-ui/icons/AddCircle'; +import GitHubIcon from '../Icons/GitIcon'; import RebuildIcon from '../Icons/RebuildIcon'; import Logs from './Logs'; import NewBuild from './NewBuild'; @@ -161,6 +163,18 @@ const style = { boxSizing: 'border-box', marginTop: '0.5rem', }, + gitHubIcon: { + color: 'black', + width: '25px', + height: '25px', + }, + addCircleIcon: { + color: 'rgb(40, 167, 69)', + width: '16px', + position: 'absolute', + marginTop: '20px', + marginLeft: '22px', + }, }; export default class Releases extends BaseComponent { @@ -182,6 +196,7 @@ export default class Releases extends BaseComponent { isElevated: false, restrictedSpace: false, confirmRebuildOpen: false, + confirmTriggerBuildOpen: false, rebuildRelease: null, collapse: true, }; @@ -246,6 +261,26 @@ export default class Releases extends BaseComponent { } } + handleConfirmTriggerBuild = () => { + this.setState({ confirmTriggerBuildOpen: true }); + } + + handleCancelTriggerBuild = () => { + this.setState({ confirmTriggerBuildOpen: false }); + } + + handleTriggerBuild = async () => { + try { + this.setState({ confirmTriggerBuildOpen: false }); + await this.api.triggerManualAutoBuild(this.props.app.name); + this.reload('Triggering new build from GitHub...'); + } catch (err) { + if (!this.isCancel(err)) { + console.error(err); // eslint-disable-line no-console + } + } + } + handleConfirmRebuild = (release) => { this.setState({ confirmRebuildOpen: true, rebuildRelease: release }); } @@ -304,6 +339,10 @@ export default class Releases extends BaseComponent { this.setState({ collapse: false, new: true }); } + handleTriggerBuild() { + this.setState({ collapse: false, new: true }); + } + handleNewBuildCancel() { this.setState({ collapse: true }); } @@ -494,7 +533,16 @@ export default class Releases extends BaseComponent { releases, rowsPerPage, page, isElevated, restrictedSpace, } = this.state; let newReleaseButton; + let triggerGitHubBuildIcon; if (!restrictedSpace || isElevated) { + triggerGitHubBuildIcon = ( + + { this.handleConfirmTriggerBuild(); }}> + + + + + ); newReleaseButton = ( { this.handleNewBuild(); }}> @@ -513,6 +561,18 @@ export default class Releases extends BaseComponent { ), ); + triggerGitHubBuildIcon = addRestrictedTooltip( + 'Elevated access required', 'right', ( + + + + + ), + ); } return ( @@ -547,6 +607,9 @@ export default class Releases extends BaseComponent { Release {this.state.collapse && (
+
+ {triggerGitHubBuildIcon} +
{newReleaseButton}
@@ -590,6 +653,14 @@ export default class Releases extends BaseComponent { onCancel={this.handleCancelRebuild} message="Are you sure you want to rebuild this?" /> + Date: Tue, 25 Jan 2022 12:10:41 -0700 Subject: [PATCH 2/3] only show trigger icon if git configured --- src/components/Releases/index.jsx | 46 +++++++++++++++++-------------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/src/components/Releases/index.jsx b/src/components/Releases/index.jsx index 5c988a64..77ad102c 100644 --- a/src/components/Releases/index.jsx +++ b/src/components/Releases/index.jsx @@ -535,19 +535,21 @@ export default class Releases extends BaseComponent { let newReleaseButton; let triggerGitHubBuildIcon; if (!restrictedSpace || isElevated) { - triggerGitHubBuildIcon = ( - - { this.handleConfirmTriggerBuild(); }}> - - - - - ); newReleaseButton = ( { this.handleNewBuild(); }}> ); + if (this.props.app.git_url) { + triggerGitHubBuildIcon = ( + + { this.handleConfirmTriggerBuild(); }}> + + + + + ); + } } else { // Wrap the new release button in a tooltip to avoid confusion as to why it is disabled newReleaseButton = addRestrictedTooltip( @@ -561,18 +563,20 @@ export default class Releases extends BaseComponent { ), ); - triggerGitHubBuildIcon = addRestrictedTooltip( - 'Elevated access required', 'right', ( - - - - - ), - ); + if (this.props.app.git_url) { + triggerGitHubBuildIcon = addRestrictedTooltip( + 'Elevated access required', 'right', ( + + + + + ), + ); + } } return ( @@ -608,7 +612,7 @@ export default class Releases extends BaseComponent { {this.state.collapse && (
- {triggerGitHubBuildIcon} + {this.props.app.git_url && triggerGitHubBuildIcon}
{newReleaseButton} From 70f27816dae5f7edf29966a04a15134a9e4937f5 Mon Sep 17 00:00:00 2001 From: Sam Beckett Date: Wed, 26 Jan 2022 10:15:32 -0700 Subject: [PATCH 3/3] fix http method on trigger build --- src/services/api/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/api/index.js b/src/services/api/index.js index dced6b4d..354992b1 100644 --- a/src/services/api/index.js +++ b/src/services/api/index.js @@ -255,7 +255,7 @@ function deleteAutoBuild(app) { } function triggerManualAutoBuild(app) { - return axios.get(`/api/apps/${app}/builds/auto/github/trigger`, { cancelToken: this.cancelToken }); + return axios.post(`/api/apps/${app}/builds/auto/github/trigger`, { cancelToken: this.cancelToken }); } function redoBuild(app, build) {