ZeroGPU-LLM-Inference / setup-gcp-permissions.sh
Alikestocode's picture
Add Cloud Build deployment script and permission setup helper
fd26b3d
#!/bin/bash
# Script to help set up GCP permissions and create a new project if needed
set -e
PROJECT_ID=${GCP_PROJECT_ID:-"light-quest-475608-k7"}
echo "🔧 GCP Setup Helper"
echo "=================="
echo ""
echo "Current project: ${PROJECT_ID}"
echo ""
# Option 1: Create a new project
read -p "Create a new project? (y/N): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
read -p "Enter new project ID (lowercase, hyphens only): " NEW_PROJECT_ID
read -p "Enter project name: " PROJECT_NAME
echo "Creating project..."
gcloud projects create ${NEW_PROJECT_ID} --name="${PROJECT_NAME}" || {
echo "❌ Failed to create project. It may already exist or you don't have permission."
exit 1
}
echo "Setting as active project..."
gcloud config set project ${NEW_PROJECT_ID}
echo "Enabling billing (you'll need to do this manually)..."
echo "Visit: https://console.cloud.google.com/billing/linkedaccount?project=${NEW_PROJECT_ID}"
read -p "Press Enter after enabling billing..."
PROJECT_ID=${NEW_PROJECT_ID}
fi
# Enable required APIs
echo ""
echo "Enabling required APIs..."
gcloud services enable \
cloudbuild.googleapis.com \
run.googleapis.com \
containerregistry.googleapis.com \
--project=${PROJECT_ID} || {
echo "⚠️ Failed to enable APIs. You may need:"
echo " 1. Billing enabled: https://console.cloud.google.com/billing?project=${PROJECT_ID}"
echo " 2. Permissions: roles/serviceusage.serviceUsageConsumer"
echo " 3. Owner role on the project"
exit 1
}
echo ""
echo "✅ Setup complete!"
echo " Project ID: ${PROJECT_ID}"
echo ""
echo "Next steps:"
echo " 1. Set HF_TOKEN secret (if using private models)"
echo " 2. Run: ./deploy-cloud-build.sh"
echo ""