Updating CICD Workflow
هذا الالتزام موجود في:
94
.github/workflows/cicd.yaml
مباع
94
.github/workflows/cicd.yaml
مباع
@@ -22,15 +22,85 @@ jobs:
|
||||
tags: ahmedgamalyousef/weatherapp:latest
|
||||
|
||||
deploy:
|
||||
needs: build_and_push_image
|
||||
steps:
|
||||
- name: checkout code
|
||||
uses: actions/checkout@v5.0.0
|
||||
- name: install ghaymah cli
|
||||
run: curl -sSl https://cli.ghaymah.systems/install.sh | bash
|
||||
|
||||
- name: login to ghaymah
|
||||
run: $HOME/ghaymah/bin/gy auth login --email "${{secrets.GHAYMAH_EMAIL}}" --password "${{secrets.GHAYMAH_PASSWORD}}"
|
||||
|
||||
- name: deploy
|
||||
run: $HOME/ghaymah/bin/gy resource app launch
|
||||
needs: build_and_push_image
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
PROJECT_NAME: ${{ github.event.repository.name }}-project
|
||||
APP_NAME: ${{ github.event.repository.name }}
|
||||
DOCKER_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
IMAGE_NAME: ${{ github.event.repository.name }}
|
||||
IMAGE_TAG: latest
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v5.0.0
|
||||
|
||||
- name: Install Ghaymah CLI
|
||||
run: |
|
||||
echo "📥 Installing Ghaymah CLI..."
|
||||
curl -sSL https://cli.ghaymah.systems/install.sh | bash
|
||||
echo "✅ Ghaymah CLI installed"
|
||||
|
||||
- name: Login to Ghaymah
|
||||
run: |
|
||||
echo "🔐 Authenticating with Ghaymah..."
|
||||
$HOME/ghaymah/bin/gy auth login --email "${{ secrets.GHAYMAH_EMAIL }}" --password "${{ secrets.GHAYMAH_PASSWORD }}"
|
||||
echo "✅ Successfully logged in to Ghaymah"
|
||||
|
||||
- name: Setup Ghaymah deployment
|
||||
run: |
|
||||
echo "☁️ Setting up Ghaymah deployment..."
|
||||
|
||||
# Create project
|
||||
echo "🔧 Creating project: $PROJECT_NAME"
|
||||
PROJECT_ID=$($HOME/ghaymah/bin/gy resource project create --set .name="$PROJECT_NAME" | awk '/ID:/ {print $NF}')
|
||||
|
||||
if [ -z "$PROJECT_ID" ]; then
|
||||
echo "❌ Failed to get project ID"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "✅ Project ID: ${PROJECT_ID}"
|
||||
|
||||
# Create .ghaymah.json configuration
|
||||
cat > .ghaymah.json << EOF
|
||||
{
|
||||
"container": {
|
||||
"image": "docker.io/${DOCKER_USERNAME}/${IMAGE_NAME}:${IMAGE_TAG}",
|
||||
"pullSecretName": ""
|
||||
},
|
||||
"name": "${APP_NAME}",
|
||||
"ports": [
|
||||
{
|
||||
"expose": true,
|
||||
"number": 5000
|
||||
}
|
||||
],
|
||||
"projectId": "${PROJECT_ID}",
|
||||
"publicAccess": {
|
||||
"baseDomain": "hosted.ghaymah.systems",
|
||||
"domain": "auto",
|
||||
"enabled": true
|
||||
},
|
||||
"resourceTier": "t1"
|
||||
}
|
||||
EOF
|
||||
|
||||
echo "✅ Configuration file created:"
|
||||
echo " - Project: ${PROJECT_NAME} (ID: ${PROJECT_ID})"
|
||||
echo " - App: ${APP_NAME}"
|
||||
echo " - Image: ${DOCKER_USERNAME}/${IMAGE_NAME}:${IMAGE_TAG}"
|
||||
|
||||
- name: Deploy to Ghaymah
|
||||
run: |
|
||||
echo "🚀 Deploying to Ghaymah..."
|
||||
$HOME/ghaymah/bin/gy resource app launch
|
||||
echo "✅ Deployment successful!"
|
||||
|
||||
- name: Show deployment info
|
||||
run: |
|
||||
echo "🎉 Deployment completed!"
|
||||
echo "📊 Project: $PROJECT_NAME"
|
||||
echo "📱 App: $APP_NAME"
|
||||
echo "🌐 URL: https://${APP_NAME}.hosted.ghaymah.systems"
|
||||
echo "✨ Deployment process completed!"
|
||||
المرجع في مشكلة جديدة
حظر مستخدم