الملفات
2026-07-26 19:57:48 +03:00

87 أسطر
1.9 KiB
YAML

name: CI/CD Pipeline
on:
push:
branches:
- main
- develop
jobs:
build:
name: Build Docker Image
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v5.0.0
- name: Build Docker image
run: |
docker build -t go-app:${{ github.sha }} .
- name: Test Docker image
run: |
docker run -d \
--name go-app-test \
-p 8080:8080 \
go-app:${{ github.sha }}
sleep 3
curl --fail http://localhost:8080/health
docker stop go-app-test
docker rm go-app-test
deploy-staging:
name: Deploy to Staging
needs: build
if: github.ref == 'refs/heads/develop'
runs-on: ubuntu-latest
steps:
- name: Checkout repository
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_PW }}"
- name: Deploy to Staging
run: |
$HOME/ghaymah/bin/gy resource app launch
deploy-production:
name: Deploy to Production
needs: build
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
environment:
name: production
steps:
- name: Checkout repository
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_PW }}"
- name: Deploy to Production
run: |
$HOME/ghaymah/bin/gy resource app launch