الملفات

97 أسطر
2.0 KiB
YAML

name: Build and Deploy
on:
push:
branches:
- main
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Ghaymah Container Registry
run: |
echo "${{ secrets.GHAYMAH_TOKEN }}" | docker login registry.ghaymah.systems \
--username ${{ secrets.GHAYMAH_USERNAME }} \
--password-stdin
- name: Build Docker Image
run: |
docker build -t registry.ghaymah.systems/sample-api:${{ github.sha }} .
- name: Push Docker Image
run: |
docker push registry.ghaymah.systems/sample-api:${{ github.sha }}
deploy-staging:
needs: build
runs-on: ubuntu-latest
steps:
- name: Deploy to Staging
run: |
ghaymah deploy \
--environment staging \
--image registry.ghaymah.systems/sample-api:${{ github.sha }}
deploy-production:
needs: deploy-staging
runs-on: ubuntu-latest
environment:
name: production
steps:
- name: Manual Approval
run: echo "Waiting for manual approval..."
- name: Deploy to Production
run: |
ghaymah deploy \
--environment production \
--image registry.ghaymah.systems/sample-api:${{ github.sha }}
# environment:
# name: production
################ Staging و Production
# Staging:
# - Testing environment
# - Used before production
# - Safe for validation
# Production:
# - Live environment
# - Real users
# - Requires manual approval
# - High availability and monitoring
########################### Ghaymah CLI
# Ghaymah CLI Documentation
#
# Install CLI
# curl -fsSL https://ghaymah.systems/install.sh | bash
#
# Login
# ghaymah login
#
# Verify
# ghaymah whoami
#
# Deploy
# ghaymah deploy --environment staging
#
# Deploy Production
# ghaymah deploy --environment production