Updating CICD Workflow
هذا الالتزام موجود في:
94
.github/workflows/cicd.yaml
مباع
94
.github/workflows/cicd.yaml
مباع
@@ -22,15 +22,85 @@ jobs:
|
|||||||
tags: ahmedgamalyousef/weatherapp:latest
|
tags: ahmedgamalyousef/weatherapp:latest
|
||||||
|
|
||||||
deploy:
|
deploy:
|
||||||
needs: build_and_push_image
|
needs: build_and_push_image
|
||||||
steps:
|
runs-on: ubuntu-latest
|
||||||
- name: checkout code
|
env:
|
||||||
uses: actions/checkout@v5.0.0
|
PROJECT_NAME: ${{ github.event.repository.name }}-project
|
||||||
- name: install ghaymah cli
|
APP_NAME: ${{ github.event.repository.name }}
|
||||||
run: curl -sSl https://cli.ghaymah.systems/install.sh | bash
|
DOCKER_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
IMAGE_NAME: ${{ github.event.repository.name }}
|
||||||
- name: login to ghaymah
|
IMAGE_TAG: latest
|
||||||
run: $HOME/ghaymah/bin/gy auth login --email "${{secrets.GHAYMAH_EMAIL}}" --password "${{secrets.GHAYMAH_PASSWORD}}"
|
|
||||||
|
steps:
|
||||||
- name: deploy
|
- name: Checkout code
|
||||||
run: $HOME/ghaymah/bin/gy resource app launch
|
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!"
|
||||||
المرجع في مشكلة جديدة
حظر مستخدم