Skip to content

Commit 3677c7a

Browse files
committed
[dashboard] Allow disabling prebuilds for a project
1 parent 50caba2 commit 3677c7a

File tree

3 files changed

+18
-2
lines changed

3 files changed

+18
-2
lines changed

components/dashboard/src/projects/NewProject.tsx

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import {
2929
} from "../service/public-api";
3030
import { FeatureFlagContext } from "../contexts/FeatureFlagContext";
3131
import { ConnectError } from "@bufbuild/connect-web";
32+
import CheckBox from "../components/CheckBox";
3233

3334
export default function NewProject() {
3435
const location = useLocation();
@@ -43,6 +44,7 @@ export default function NewProject() {
4344
const [showGitProviders, setShowGitProviders] = useState<boolean>(false);
4445
const [selectedRepo, setSelectedRepo] = useState<ProviderRepository | undefined>(undefined);
4546
const [selectedTeamOrUser, setSelectedTeamOrUser] = useState<Team | User | undefined>(undefined);
47+
const [enablePrebuilds, setEnablePrebuilds] = useState<boolean>(true);
4648

4749
const [showNewTeam, setShowNewTeam] = useState<boolean>(false);
4850
const [loaded, setLoaded] = useState<boolean>(false);
@@ -169,10 +171,10 @@ export default function NewProject() {
169171
}, [selectedProviderHost]);
170172

171173
useEffect(() => {
172-
if (project) {
174+
if (project && enablePrebuilds) {
173175
getGitpodService().server.triggerPrebuild(project.id, null);
174176
}
175-
}, [project]);
177+
}, [enablePrebuilds, project]);
176178

177179
const isGitHub = () => selectedProviderHost === "github.com";
178180

@@ -600,6 +602,13 @@ export default function NewProject() {
600602
<>
601603
<h1>New Project</h1>
602604

605+
<CheckBox
606+
title={<span>Enable Prebuilds </span>}
607+
desc={<span></span>}
608+
checked={enablePrebuilds}
609+
onChange={({ target }) => setEnablePrebuilds(target.checked)}
610+
/>
611+
603612
{!selectedRepo && renderSelectRepository()}
604613

605614
{selectedRepo && !selectedTeamOrUser && renderSelectTeam()}

components/dashboard/src/projects/ProjectSettings.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,12 @@ export default function () {
146146
</div>
147147
</Alert>
148148
)}
149+
<CheckBox
150+
title={<span>Enable Prebuilds </span>}
151+
desc={<span>Enable Prebuilds</span>}
152+
checked={!project.settings?.disablePrebuilds ?? false}
153+
onChange={({ target }) => updateProjectSettings({ disablePrebuilds: !target.checked })}
154+
/>
149155
<CheckBox
150156
title={<span>Enable Incremental Prebuilds </span>}
151157
desc={

components/gitpod-protocol/src/teams-projects-protocol.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ export interface ProjectConfig {
1414
}
1515

1616
export interface ProjectSettings {
17+
disablePrebuilds?: boolean;
1718
useIncrementalPrebuilds?: boolean;
1819
keepOutdatedPrebuildsRunning?: boolean;
1920
// whether new workspaces can start on older prebuilds and incrementally update

0 commit comments

Comments
 (0)