الملفات
ghaymah-exam-mohammedhamdy-sre/.github/workflows/main.yml
mohammed hamdy 00681492f6 Refactor GitHub Actions workflow for production deployment
Updated workflow to deploy to production instead of staging. Added verification for secrets and improved Docker image build steps.
2026-07-27 18:34:42 +03:00

71 أسطر
1.8 KiB
YAML

name: CI/CD - Build & Deploy to Ghaymah Cloud
on:
push:
branches:
- main
jobs:
# ---------------------------------------------------------
# 1) BUILD & TEST
# ---------------------------------------------------------
build-and-test:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v5
- name: Build Docker image
run: |
docker build -t exam-api:${{ github.sha }} .
- name: Smoke Test
run: |
docker run -d -p 5000:5000 --name smoke-test exam-api:${{ github.sha }}
sleep 8
curl -f http://localhost:5000/health
docker stop smoke-test
docker rm smoke-test
# ---------------------------------------------------------
# 2) DEPLOY TO PRODUCTION
# ---------------------------------------------------------
deploy-production:
needs: build-and-test
runs-on: ubuntu-latest
environment:
name: production
steps:
- name: Checkout code
uses: actions/checkout@v5
- name: Install Ghaymah CLI
run: |
curl -sSL https://cli.ghaymah.systems/install.sh | bash
- name: Verify Secrets
shell: bash
env:
EMAIL: ${{ secrets.GHAYMAH_EMAIL }}
PASSWORD: ${{ secrets.GHAYMAH_PW }}
run: |
echo "Email Length: ${#EMAIL}"
echo "Password Length: ${#PASSWORD}"
- name: Login to Ghaymah
run: |
$HOME/ghaymah/bin/gy auth login \
--email "${{ secrets.GHAYMAH_EMAIL }}" \
--password "${{ secrets.GHAYMAH_PW }}"
- name: Use Production Config
run: |
cp .ghaymah.production.json .ghaymah.json
- name: Deploy to Ghaymah
run: |
$HOME/ghaymah/bin/gy resource app launch