name: Ghaymah CI/CD Pipeline on: push: branches: [ "master" ] workflow_dispatch: jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 deploy-staging: name: Deploy to Staging needs: build runs-on: ubuntu-latest # Staging is used for pre-production validation before a live release. environment: name: staging steps: - name: Checkout Code uses: actions/checkout@v4 - 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 }}" --debug deploy-production: name: Deploy to Production needs: deploy-staging runs-on: ubuntu-latest # Production is the live environment and should be protected by manual approval. environment: name: production steps: - name: Checkout Code uses: actions/checkout@v4 - 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}}" --debug - name: Deploy to Ghaymah (Production) run: $HOME/ghaymah/bin/gy resource app launch --debug