# CI/CD Documentation

## 1. Staging Environment

- Used for testing new releases.
- Verifies integration before production.
- Safe environment for developers.
- May contain test data.

---

## 2. Production Environment

- Live environment serving end users.
- Requires manual approval before deployment.
- High availability and monitoring.
- Uses real production data.

---

## Difference Between Staging and Production

| Staging | Production |
|----------|------------|
| Testing | Live |
| Test Data | Real Data |
| Developers | End Users |
| Frequent Changes | Stable Releases |

---

## Ghaymah CLI Integration

## Install Ghaymah CLI

```bash
curl -sSl https://cli.ghaymah.systems/install.sh | bash
```

## Verify Installation

```bash
gy version
```

## Login

```bash
gy auth login
```

## Initialize an Application

```bash
gy resource app init -p <project_id>
```

## Deploy the Application

```bash
gy resource app launch
```

### Manual Approval

Production deployments require approval using GitHub Environment Protection Rules before executing the deployment job.
