Skip to content

Commit 4232a35

Browse files
geroplona-agent
andcommitted
[dev] Improve devcontainer, add automations
Co-authored-by: Ona <[email protected]>
1 parent c3d5051 commit 4232a35

File tree

4 files changed

+195
-45
lines changed

4 files changed

+195
-45
lines changed

.devcontainer/devcontainer.json

Lines changed: 118 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,121 @@
11
{
2-
"name": "gitpod",
3-
"build": {
4-
"context": "..",
5-
"dockerfile": "./Dockerfile"
6-
},
7-
"workspaceMount": "source=${localWorkspaceFolder},target=/workspace/gitpod,type=bind",
8-
"workspaceFolder": "/workspace/gitpod/",
9-
"postCreateCommand": "dev/install-dependencies.sh",
10-
"mounts": [
11-
"source=/usr/local/gitpod/config/,target=/usr/local/gitpod/config/,type=bind"
12-
],
13-
"remoteEnv": {
14-
"GIT_EDITOR": "code --wait",
15-
"KUBE_EDITOR": "code --wait"
16-
},
17-
"features": {
18-
"ghcr.io/devcontainers/features/docker-in-docker:2": {
19-
"installDockerComposeSwitch": false
20-
}
21-
},
22-
"customizations": {
23-
"vscode": {
24-
"extensions": [
25-
"EditorConfig.EditorConfig",
26-
"golang.go",
27-
"hashicorp.terraform",
28-
"ms-azuretools.vscode-docker",
29-
"ms-kubernetes-tools.vscode-kubernetes-tools",
30-
"stkb.rewrap",
31-
"zxh404.vscode-proto3",
32-
"matthewpi.caddyfile-support",
33-
"timonwong.shellcheck",
34-
"fwcd.kotlin",
35-
"dbaeumer.vscode-eslint",
36-
"esbenp.prettier-vscode",
37-
"hbenl.vscode-mocha-test-adapter"
38-
]
39-
}
2+
"name": "gitpod",
3+
"build": {
4+
"context": "..",
5+
"dockerfile": "./Dockerfile"
6+
},
7+
"features": {
8+
"ghcr.io/devcontainers/features/docker-in-docker:2": {}
9+
},
10+
"workspaceFolder": "/workspace/gitpod",
11+
"workspaceMount": "source=${localWorkspaceFolder},target=/workspace/gitpod,type=bind",
12+
"mounts": [
13+
"source=/usr/local/gitpod/config/,target=/usr/local/gitpod/config/,type=bind"
14+
],
15+
"remoteEnv": {
16+
"GIT_EDITOR": "code --wait",
17+
"KUBE_EDITOR": "code --wait"
18+
},
19+
"forwardPorts": [
20+
1337,
21+
3000,
22+
3001,
23+
3306,
24+
4000,
25+
5900,
26+
6080,
27+
7777,
28+
9229,
29+
9999,
30+
13001,
31+
13444,
32+
8022
33+
],
34+
"portsAttributes": {
35+
"13001": {
36+
"label": "Port 13001",
37+
"onAutoForward": "ignore",
38+
"elevateIfNeeded": true
39+
},
40+
"1337": {
41+
"label": "Port 1337",
42+
"onAutoForward": "openPreview",
43+
"elevateIfNeeded": true
44+
},
45+
"13444": {
46+
"label": "Port 13444",
47+
"elevateIfNeeded": true
48+
},
49+
"3000": {
50+
"label": "Port 3000",
51+
"onAutoForward": "ignore",
52+
"elevateIfNeeded": true
53+
},
54+
"3001": {
55+
"label": "Port 3001",
56+
"onAutoForward": "ignore",
57+
"elevateIfNeeded": true
58+
},
59+
"3306": {
60+
"label": "Port 3306",
61+
"onAutoForward": "ignore",
62+
"elevateIfNeeded": true
63+
},
64+
"4000": {
65+
"label": "Port 4000",
66+
"onAutoForward": "ignore",
67+
"elevateIfNeeded": true
68+
},
69+
"5900": {
70+
"label": "Port 5900",
71+
"onAutoForward": "ignore",
72+
"elevateIfNeeded": true
73+
},
74+
"6080": {
75+
"label": "Port 6080",
76+
"onAutoForward": "ignore",
77+
"elevateIfNeeded": true
78+
},
79+
"7777": {
80+
"label": "Port 7777",
81+
"onAutoForward": "ignore",
82+
"elevateIfNeeded": true
83+
},
84+
"8022": {
85+
"label": "Port 8022",
86+
"onAutoForward": "ignore",
87+
"elevateIfNeeded": true
88+
},
89+
"9229": {
90+
"label": "Port 9229",
91+
"onAutoForward": "ignore",
92+
"elevateIfNeeded": true
93+
},
94+
"9999": {
95+
"label": "Port 9999",
96+
"onAutoForward": "ignore",
97+
"elevateIfNeeded": true
98+
}
99+
},
100+
"customizations": {
101+
"vscode": {
102+
"extensions": [
103+
"EditorConfig.EditorConfig",
104+
"golang.go",
105+
"hashicorp.terraform",
106+
"ms-azuretools.vscode-docker",
107+
"ms-kubernetes-tools.vscode-kubernetes-tools",
108+
"stkb.rewrap",
109+
"zxh404.vscode-proto3",
110+
"matthewpi.caddyfile-support",
111+
"heptio.jsonnet",
112+
"timonwong.shellcheck",
113+
"fwcd.kotlin",
114+
"dbaeumer.vscode-eslint",
115+
"esbenp.prettier-vscode",
116+
"akosyakov.gitpod-monitor",
117+
"hbenl.vscode-mocha-test-adapter"
118+
]
40119
}
120+
}
41121
}

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,3 +64,6 @@ dump.rdb
6464

6565
# Claude settings
6666
.claude/settings.local.json
67+
68+
# Gitpod mcp-config.json
69+
.gitpod/mcp-config.json

.gitpod/automations.yaml

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
tasks:
2+
removeADCFile:
3+
command: |
4+
if [[ -n "${GCP_ADC_FILE}" ]]; then
5+
echo "$GCP_ADC_FILE" > "/home/gitpod/.config/gcloud/application_default_credentials.json"
6+
yes | gcloud auth application-default revoke
7+
gp env -u GCP_ADC_FILE
8+
fi
9+
exit 0
10+
name: 'Remove GCP_ADC_FILE'
11+
triggeredBy:
12+
- postDevcontainerStart
13+
installLocalAppCli:
14+
command: |
15+
leeway run components/local-app:install-cli
16+
leeway run components/local-app:cli-completion
17+
exit 0
18+
name: 'Install `gitpod` CLI'
19+
triggeredBy:
20+
- postDevcontainerStart
21+
configurePreview:
22+
command: INSTALL_CONTEXT=true leeway run dev/preview:configure-workspace
23+
dependsOn:
24+
- installPreviewctl
25+
name: 'Preview environment configuration'
26+
triggeredBy:
27+
- postDevcontainerStart
28+
buildJava:
29+
command: |
30+
if [ -z "$RUN_GRADLE_TASK" ]; then
31+
read -r -p "Press enter to continue Java gradle task"
32+
fi
33+
leeway exec --package components/supervisor-api/java:lib --package components/gitpod-protocol/java:lib -- ./gradlew build
34+
leeway exec --package components/ide/jetbrains/backend-plugin:plugin-latest --package components/ide/jetbrains/gateway-plugin:publish-latest --parallel -- ./gradlew buildPlugin
35+
name: 'Java: build with Gradle'
36+
setupClaudeCode:
37+
command: |
38+
if [[ -z "${CLAUDE_JSON}" ]]; then
39+
echo "Skipping setup for Claude Code. Setup a CLAUDE_JSON variable to reuse Claude Code in workspaces."
40+
else
41+
echo $CLAUDE_JSON > ~/.claude.json
42+
fi
43+
name: 'claude code'
44+
triggeredBy:
45+
- postDevcontainerStart
46+
installPreviewctl:
47+
command: leeway run dev/preview/previewctl:install
48+
name: 'Preview environment configuration: init'
49+
installInstallerDependencies:
50+
command: |
51+
(cd install/installer && make deps)
52+
exit 0
53+
name: 'Installer dependencies'
54+
triggeredBy:
55+
- postDevcontainerStart
56+
buildTypescript:
57+
command: yarn --network-timeout 100000 && yarn build
58+
name: 'TypeScript: install and build'
59+
triggeredBy:
60+
- postDevcontainerStart
61+
setupPreCommit:
62+
command: |
63+
pre-commit install --install-hooks
64+
exit 0
65+
name: 'Install pre-commit hooks'
66+
triggeredBy:
67+
- postDevcontainerStart
68+
initGo:
69+
command: |
70+
./components/gitpod-protocol/go/scripts/generate-config.sh
71+
leeway exec --filter-type go -v -- go mod verify
72+
name: 'Go: init'
73+
triggeredBy:
74+
- postDevcontainerStart

dev/install-dependencies.sh

Lines changed: 0 additions & 7 deletions
This file was deleted.

0 commit comments

Comments
 (0)