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 Maintainer Image - name: 'us-west1-docker.pkg.dev/gemini-code-dev/gemini-code-containers/gemini-code-builder' id: 'Build Maintainer Image' entrypoint: 'bash' args: - '-c' - |- IMAGE_BASE="us-docker.pkg.dev/gemini-code-dev/gemini-cli/maintainer" # Determine the primary tag (branch name or 'latest' for main) RAW_BRANCH="${_HEAD_BRANCH:-${BRANCH_NAME}}" 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 TAG_SHA="${SHORT_SHA}" echo "📦 Building Maintainer Image for: $${RAW_BRANCH} -> $${TAG_PRIMARY}" docker build -f .gcp/Dockerfile.maintainer \ -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