Initial commit - production deployment
This commit is contained in:
119
infrastructure/cicd/gitea/setup-gitea-repository.sh
Executable file
119
infrastructure/cicd/gitea/setup-gitea-repository.sh
Executable file
@@ -0,0 +1,119 @@
|
||||
#!/bin/bash
|
||||
# Script to setup and push code to the automatically created Gitea repository
|
||||
# This script should be run after Gitea is installed and the repository is created
|
||||
|
||||
set -e
|
||||
|
||||
echo "=== Gitea Repository Setup Script ==="
|
||||
echo "This script will configure the bakery-ia repository in Gitea"
|
||||
echo
|
||||
|
||||
# Configuration - update these values as needed
|
||||
GITEA_URL="https://gitea.bakery-ia.local"
|
||||
GITEA_ADMIN_USER="bakery-admin"
|
||||
REPO_NAME="bakery-ia"
|
||||
LOCAL_DIR="/Users/urtzialfaro/Documents/bakery-ia"
|
||||
|
||||
# Check if Gitea admin password is set
|
||||
if [ -z "$GITEA_ADMIN_PASSWORD" ]; then
|
||||
echo "Error: GITEA_ADMIN_PASSWORD environment variable is not set"
|
||||
echo "Please set it to the admin password you used during Gitea installation"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Checking if Gitea is accessible..."
|
||||
if ! curl -s -o /dev/null -w "%{http_code}" "$GITEA_URL" | grep -q "200"; then
|
||||
echo "Error: Cannot access Gitea at $GITEA_URL"
|
||||
echo "Please ensure Gitea is running and accessible"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "✓ Gitea is accessible"
|
||||
|
||||
echo "Checking if repository $REPO_NAME exists..."
|
||||
REPO_CHECK=$(curl -s -w "%{http_code}" -u "$GITEA_ADMIN_USER:$GITEA_ADMIN_PASSWORD" \
|
||||
"$GITEA_URL/api/v1/repos/$GITEA_ADMIN_USER/$REPO_NAME" | tail -1)
|
||||
|
||||
if [ "$REPO_CHECK" != "200" ]; then
|
||||
echo "Repository $REPO_NAME does not exist or is not accessible"
|
||||
echo "Attempting to create it..."
|
||||
|
||||
CREATE_RESPONSE=$(curl -s -w "%{http_code}" -u "$GITEA_ADMIN_USER:$GITEA_ADMIN_PASSWORD" \
|
||||
-X POST "$GITEA_URL/api/v1/user/repos" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"name": "'"$REPO_NAME"'",
|
||||
"description": "Main repository for Bakery IA project",
|
||||
"private": false,
|
||||
"auto_init": true,
|
||||
"default_branch": "main"
|
||||
}')
|
||||
|
||||
HTTP_CODE=$(echo "$CREATE_RESPONSE" | tail -1)
|
||||
RESPONSE_BODY=$(echo "$CREATE_RESPONSE" | sed '$d')
|
||||
|
||||
if [ "$HTTP_CODE" != "201" ]; then
|
||||
echo "Error creating repository: HTTP $HTTP_CODE"
|
||||
echo "Response: $RESPONSE_BODY"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "✓ Repository $REPO_NAME created successfully"
|
||||
else
|
||||
echo "✓ Repository $REPO_NAME already exists"
|
||||
fi
|
||||
|
||||
echo "Configuring Git repository..."
|
||||
cd "$LOCAL_DIR"
|
||||
|
||||
# Check if this is already a git repository
|
||||
if [ ! -d ".git" ]; then
|
||||
echo "Initializing Git repository..."
|
||||
git init
|
||||
git branch -M main
|
||||
else
|
||||
echo "Git repository already initialized"
|
||||
fi
|
||||
|
||||
# Configure Git user if not already set
|
||||
if [ -z "$(git config user.name)" ]; then
|
||||
git config user.name "$GITEA_ADMIN_USER"
|
||||
git config user.email "admin@bakery-ia.local"
|
||||
echo "✓ Configured Git user: $GITEA_ADMIN_USER"
|
||||
fi
|
||||
|
||||
# Set the remote URL
|
||||
GIT_REMOTE_URL="$GITEA_URL/$GITEA_ADMIN_USER/$REPO_NAME.git"
|
||||
|
||||
if git remote | grep -q "origin"; then
|
||||
CURRENT_REMOTE=$(git remote get-url origin)
|
||||
if [ "$CURRENT_REMOTE" != "$GIT_REMOTE_URL" ]; then
|
||||
echo "Updating remote origin to: $GIT_REMOTE_URL"
|
||||
git remote set-url origin "$GIT_REMOTE_URL"
|
||||
else
|
||||
echo "Remote origin is already set correctly"
|
||||
fi
|
||||
else
|
||||
echo "Setting remote origin to: $GIT_REMOTE_URL"
|
||||
git remote add origin "$GIT_REMOTE_URL"
|
||||
fi
|
||||
|
||||
echo "Checking if there are changes to commit..."
|
||||
if [ -n "$(git status --porcelain)" ]; then
|
||||
echo "Committing changes..."
|
||||
git add .
|
||||
git commit -m "Initial commit - Bakery IA project setup"
|
||||
echo "✓ Changes committed"
|
||||
else
|
||||
echo "No changes to commit"
|
||||
fi
|
||||
|
||||
echo "Pushing to Gitea repository..."
|
||||
git push --set-upstream origin main
|
||||
|
||||
echo "✓ Code pushed successfully to Gitea!"
|
||||
|
||||
echo "Repository URL: $GIT_REMOTE_URL"
|
||||
echo "You can now configure your CI/CD pipelines to use this repository."
|
||||
|
||||
echo "=== Setup Complete ==="
|
||||
Reference in New Issue
Block a user