Skip to content

Commit dcb94e8

Browse files
committed
Allow disabling prebuilds for a project
1 parent 3cf308f commit dcb94e8

File tree

7 files changed

+22
-2
lines changed

7 files changed

+22
-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

@@ -605,6 +607,13 @@ export default function NewProject() {
605607
{selectedRepo && !selectedTeamOrUser && renderSelectTeam()}
606608

607609
{selectedRepo && selectedTeamOrUser && <div></div>}
610+
611+
<CheckBox
612+
title={<span>Enable Prebuilds </span>}
613+
desc={<span></span>}
614+
checked={enablePrebuilds}
615+
onChange={({ target }) => setEnablePrebuilds(target.checked)}
616+
/>
608617
</>
609618
</div>
610619
);

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}
153+
onChange={({ target }) => updateProjectSettings({ disablePrebuilds: !target.checked })}
154+
/>
149155
<CheckBox
150156
title={<span>Enable Incremental Prebuilds </span>}
151157
desc={

components/gitpod-protocol/go/gitpod-service.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2323,6 +2323,7 @@ type ProjectSettings struct {
23232323
AllowUsingPreviousPrebuilds bool `json:"allowUsingPreviousPrebuilds,omitempty"`
23242324
PrebuildEveryNthCommit int `json:"prebuildEveryNthCommit,omitempty"`
23252325
WorkspaceClasses *WorkspaceClassesSettings `json:"workspaceClasses,omitempty"`
2326+
DisablePrebuilds bool `json:"disablePrebuilds,omitempty"`
23262327
}
23272328

23282329
type WorkspaceClassesSettings struct {

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ export interface ProjectSettings {
2222
prebuildEveryNthCommit?: number;
2323
// preferred workspace classes
2424
workspaceClasses?: WorkspaceClasses;
25+
disablePrebuilds?: boolean;
2526
}
2627

2728
export interface Project {

components/public-api-server/pkg/apiv1/project.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,7 @@ func projectSettingsToAPIResponse(s *protocol.ProjectSettings) *v1.ProjectSettin
211211
KeepOutdatedPrebuildsRunning: s.KeepOutdatedPrebuildsRunning,
212212
UsePreviousPrebuilds: s.AllowUsingPreviousPrebuilds,
213213
PrebuildEveryNth: int32(s.PrebuildEveryNthCommit),
214+
DisablePrebuilds: s.DisablePrebuilds,
214215
},
215216
Workspace: &v1.WorkspaceSettings{
216217
EnablePersistentVolumeClaim: s.UsePersistentVolumeClaim,

components/public-api/gitpod/experimental/v1/projects.proto

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ message PrebuildSettings {
5151
bool keep_outdated_prebuilds_running = 2;
5252
bool use_previous_prebuilds = 3;
5353
int32 prebuild_every_nth = 4;
54+
bool disable_prebuilds = 5;
5455
}
5556

5657
message WorkspaceSettings {

components/public-api/go/experimental/v1/projects.pb.go

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)