feat(build): implement dual-tagging strategy and update next mission dossier

This commit is contained in:
mkorwel
2026-03-15 09:41:50 -07:00
parent 3a813171f9
commit 3a0c5eef9c
2 changed files with 34 additions and 12 deletions
+18 -8
View File
@@ -10,15 +10,25 @@ Shift from a "Manual VM" to an "Invisible VM" (Container-Optimized OS) that runs
## Planned Changes
1. **Multi-Stage Dockerfile**:
- Optimize `Dockerfile.gemini-maintainer` to include `tsx`, `vitest`, `gh`, and a pre-warmed repository.
- Base it on the existing `google-gemini-cli-sandbox`.
2. **Setup Script (`setup.ts`)**:
- Optimize `.gcp/Dockerfile.maintainer` to include `tsx`, `vitest`, `gh`, and system dependencies (`libsecret`, `build-essential`).
2. **Dedicated Pipeline**:
- Use `.gcp/maintainer-worker.yml` for isolated PR builds.
- **Tagging Strategy**: Dual-tag images with `${SHORT_SHA}` (immutable) and `${CLEAN_BRANCH}` (latest-on-branch).
3. **Setup Script (`setup.ts`)**:
- Refactor `provision` to use `gcloud compute instances create-with-container`.
- Configure the VM to launch the container as the primary entrypoint.
3. **Orchestrator (`orchestrator.ts`)**:
- Point to the new `maintainer` image in Artifact Registry.
4. **Orchestrator (`orchestrator.ts`)**:
- Update SSH logic to include the `--container` flag.
- Ensure `rsync` still maps to the persistent home directory that is mounted into the container.
## GCP Console Setup (Manual Action)
To enable the automatic maintainer image builds on PRs:
1. **Create Trigger**: Go to **Cloud Build > Triggers** and create a new trigger.
2. **Event**: Set to **Pull Request**.
3. **Source**: Select the `google-gemini/gemini-cli` repository.
4. **Configuration**: Point to `.gcp/maintainer-worker.yml` in the repo.
5. **Filters**: Set the base branch to `^main$`.
6. **Service Account**: Ensure it has `Artifact Registry Writer` permissions.
## How to Resume
1. Load the checkpoint: `/checkpoint load offload-container-refactor` (if available).
2. Tell Gemini: *"Read .gemini/skills/offload/NEXT_MISSION.md and start Phase 1: The Multi-Stage Dockerfile."*
1. Load the checkpoint: `/checkpoint save offload-container-refactor` (if available).
2. Tell Gemini: *"Read .gemini/skills/offload/NEXT_MISSION.md and start Phase 3: Refactoring setup.ts for Container-OS."*