Skip to content

Where people and agents ship software together. The open-source git platform for the whole job: issues, agents, checks and deploys to the edge.

Runner base image installs Cargo when the runner's image has none #486

Mergedsyntaqx merged runner-base-cargo into main
3 files+50−391 file not counted0/3 viewed
+13−1
1212 # own machines have Docker now, but this build's own downloads (Docker's
1313 # apt repository over HTTPS) do not yet trust a guarded job's egress
1414 # certificate, so it stays where the network is open. The job runs in the
15−# runner's default image, so it installs Docker's buildx plugin first.
15+# runner's default image, so it installs Docker's buildx plugin and Cargo
16+# first.
1617 # Without such a runner, run the same thing by hand on a machine with Docker:
1718 #
1819 # node scripts/deploy.mjs build-base
7980 curl -fsSL -o ~/.docker/cli-plugins/docker-buildx "https://github.com/docker/buildx/releases/download/$BUILDX_VERSION/buildx-$BUILDX_VERSION.linux-amd64"
8081 chmod +x ~/.docker/cli-plugins/docker-buildx
8182 docker buildx version
83+ # The deploy tool reads the workspace's crates with `cargo metadata`
84+ # (scripts/deploy/stack.mjs); the runner's default image has no Rust.
85+ - name: Cargo
86+ run: |
87+ if ! command -v cargo >/dev/null 2>&1; then
88+ curl -fsSL https://sh.rustup.rs | sh -s -- -y --profile minimal --no-modify-path
89+ echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
90+ "$HOME/.cargo/bin/cargo" --version
91+ else
92+ cargo --version
93+ fi
8294 - name: Install Wrangler
8395 run: node scripts/deploy/npm-ci.mjs --workspaces=false --no-audit --no-fund
8496 - name: Build and push
Too large to compare

Too large, or too much of it changed, to compare line by line here.

+37−38
11 {
2− "name": "g1t-monorepo",
3− "private": true,
4− "type": "module",
5− "engines": {
6− "node": ">=24"
7− },
8− "workspaces": [
9− "apps/*",
10− "services/*",
11− "packages/*"
12− ],
13− "scripts": {
14− "format": "prettier --write",
15− "format:check": "prettier --check",
16− "typecheck": "npm run typecheck --workspaces --if-present",
17− "deploy": "npm run deploy -w @g1t/web",
18− "test:deploy": "node --test \"scripts/deploy/*.test.mjs\"",
19− "test:ops": "node --test \"scripts/ops/*.test.mjs\"",
20− "test:conformance": "node --test \"conformance/*.test.mjs\"",
21− "test:agent-readiness": "npm run build -w @g1t/docs && node --test \"scripts/agent-resources.test.mjs\" \"scripts/mcp-readiness.test.mjs\"",
22− "test:release": "node --test \"scripts/cli-homebrew.test.mjs\" \"scripts/desktop-release.test.mjs\" \"scripts/mobile-release.test.mjs\" \"scripts/cli-release.test.mjs\" \"scripts/plugins-release.test.mjs\" \"scripts/runner-release.test.mjs\" \"scripts/hosted-image.test.mjs\""
23− },
24− "devDependencies": {
25− "prettier": "3.6.2",
26− "typescript": "^5.9.3",
27− "wrangler": "^4.146.0"
28− },
29− "overrides": {
30− "basic-ftp": "^6.2.1",
31− "fflate": "^0.7.5",
32− "katex": "^0.19.0",
33− "postcss-selector-parser": "^7.1.6",
34− "query-string": "^9.5.1",
35− "sharp": "^0.35.5",
36− "xcode": {
37− "uuid": "^11.1.1"
38− },
39− "undici": "8.12.2"
2+ "name": "g1t-monorepo",
3+ "private": true,
4+ "type": "module",
5+ "engines": {
6+ "node": ">=24"
7+ },
8+ "workspaces": [
9+ "apps/*",
10+ "services/*",
11+ "packages/*"
12+ ],
13+ "scripts": {
14+ "format": "prettier --write",
15+ "format:check": "prettier --check",
16+ "typecheck": "npm run typecheck --workspaces --if-present",
17+ "deploy": "npm run deploy -w @g1t/web",
18+ "test:deploy": "node --test \"scripts/deploy/*.test.mjs\"",
19+ "test:ops": "node --test \"scripts/ops/*.test.mjs\"",
20+ "test:conformance": "node --test \"conformance/*.test.mjs\"",
21+ "test:agent-readiness": "npm run build -w @g1t/docs && node --test \"scripts/agent-resources.test.mjs\" \"scripts/mcp-readiness.test.mjs\"",
22+ "test:release": "node --test \"scripts/cli-homebrew.test.mjs\" \"scripts/desktop-release.test.mjs\" \"scripts/mobile-release.test.mjs\" \"scripts/cli-release.test.mjs\" \"scripts/plugins-release.test.mjs\" \"scripts/runner-release.test.mjs\" \"scripts/hosted-image.test.mjs\""
23+ },
24+ "devDependencies": {
25+ "prettier": "3.6.2",
26+ "typescript": "^5.9.3",
27+ "wrangler": "^4.146.0"
28+ },
29+ "overrides": {
30+ "basic-ftp": "^6.2.1",
31+ "fflate": "^0.7.5",
32+ "katex": "^0.19.0",
33+ "postcss-selector-parser": "^7.1.6",
34+ "query-string": "^9.5.1",
35+ "sharp": "^0.35.5",
36+ "xcode": {
37+ "uuid": "^11.1.1"
4038 }
39+ }
4140 }