mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-03-29 23:41:29 -07:00
59 lines
2.0 KiB
YAML
59 lines
2.0 KiB
YAML
substitutions:
|
|
_IMAGE_NAME: 'development'
|
|
_ARTIFACT_REGISTRY_REPO: 'us-docker.pkg.dev/gemini-code-dev/gemini-cli'
|
|
|
|
steps:
|
|
# Step 1: Install root dependencies
|
|
- name: 'us-west1-docker.pkg.dev/gemini-code-dev/gemini-code-containers/gemini-code-builder'
|
|
id: 'Install Dependencies'
|
|
entrypoint: 'npm'
|
|
args: ['install']
|
|
|
|
# Step 2: Authenticate for Docker
|
|
- name: 'us-west1-docker.pkg.dev/gemini-code-dev/gemini-code-containers/gemini-code-builder'
|
|
id: 'Authenticate docker'
|
|
entrypoint: 'npm'
|
|
args: ['run', 'auth']
|
|
|
|
# Step 3: Build workspace packages
|
|
- name: 'us-west1-docker.pkg.dev/gemini-code-dev/gemini-code-containers/gemini-code-builder'
|
|
id: 'Build packages'
|
|
entrypoint: 'npm'
|
|
args: ['run', 'build:packages']
|
|
|
|
# Step 4: Build Development Image
|
|
- name: 'us-west1-docker.pkg.dev/gemini-code-dev/gemini-code-containers/gemini-code-builder'
|
|
id: 'Build Development Image'
|
|
entrypoint: 'bash'
|
|
env:
|
|
- 'RAW_BRANCH_VALUE=${BRANCH_NAME}'
|
|
args:
|
|
- '-c'
|
|
- |-
|
|
IMAGE_BASE="${_ARTIFACT_REGISTRY_REPO}/${_IMAGE_NAME}"
|
|
|
|
# Determine the primary tag (branch name or 'latest' for main)
|
|
# Use $$ for shell variables to avoid Cloud Build attempting premature substitution
|
|
RAW_BRANCH="$$RAW_BRANCH_VALUE"
|
|
if [ "$${RAW_BRANCH}" == "main" ]; then
|
|
TAG_PRIMARY="latest"
|
|
else
|
|
TAG_PRIMARY=$$(echo "$${RAW_BRANCH}" | sed 's/[^a-zA-Z0-9]/-/g' | tr '[:upper:]' '[:lower:]')
|
|
fi
|
|
|
|
# Use SHORT_SHA if available (Cloud Build) or fallback to latest-dev
|
|
TAG_SHA="$${SHORT_SHA:-latest-dev}"
|
|
|
|
echo "📦 Building Development Image for: $${RAW_BRANCH} -> $${TAG_PRIMARY} ($${TAG_SHA})"
|
|
|
|
docker build -f .gcp/Dockerfile.development \
|
|
-t "$${IMAGE_BASE}:$${TAG_SHA}" \
|
|
-t "$${IMAGE_BASE}:$${TAG_PRIMARY}" .
|
|
|
|
docker push "$${IMAGE_BASE}:$${TAG_SHA}"
|
|
docker push "$${IMAGE_BASE}:$${TAG_PRIMARY}"
|
|
|
|
options:
|
|
defaultLogsBucketBehavior: 'REGIONAL_USER_OWNED_BUCKET'
|
|
dynamicSubstitutions: true
|