76 أسطر
1.6 KiB
YAML
76 أسطر
1.6 KiB
YAML
name: Ghaymah CI/CD Pipeline
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- "release/**"
|
|
- main
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build:
|
|
name: Build Docker Image
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout Source
|
|
uses: actions/checkout@v5
|
|
|
|
- name: Build Docker Image
|
|
run: |
|
|
docker build -t ghaymah-sre-api:${{ github.sha }} .
|
|
|
|
deploy-staging:
|
|
name: Deploy to Staging
|
|
needs: build
|
|
|
|
if: startsWith(github.ref, 'refs/heads/release/')
|
|
|
|
environment: staging
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v5
|
|
|
|
- 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_PW }}"
|
|
|
|
- name: Deploy to Ghaymah Staging
|
|
run: |
|
|
$HOME/ghaymah/bin/gy resource app launch
|
|
|
|
deploy-production:
|
|
name: Deploy to Production
|
|
|
|
needs: build
|
|
|
|
if: github.ref == 'refs/heads/main'
|
|
|
|
environment:
|
|
name: production
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v5
|
|
|
|
- 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_PW }}"
|
|
|
|
- name: Deploy to Ghaymah Production
|
|
run: |
|
|
$HOME/ghaymah/bin/gy resource app launch
|