name: CD | Engine cyberia | remote ssh
on:
  workflow_dispatch:
    inputs:
      job:
        description: 'Job to run (deploy, sync-and-deploy, init)'
        required: true
        type: choice
        options:
          - deploy
          - sync-and-deploy
          - init
permissions:
  contents: write
  packages: write
  id-token: write

jobs:
  deploy:
    if: github.event.inputs.job == 'deploy'
    name: Remote SSH deployment
    runs-on: ubuntu-latest
    steps:
      - name: Run remote deploy via SSH
        uses: appleboy/ssh-action@v1.2.5
        with:
          # Remote host (secret)
          host: ${{ secrets.SSH_HOST }}
          # Remote user (secret)
          username: ${{ secrets.SSH_USERNAME }}
          # Private key (secret) — the PEM contents (not a path)
          key: ${{ secrets.SSH_PRIV_KEY }}
          # Remote port (optional)
          port: ${{ secrets.SSH_PORT }}
          # Optional: increase timeout for long-running commands
          command_timeout: 60m
          # Optional: if your private key has a passphrase, add:
          # passphrase: ${{ secrets.SSH_KEY_PASSPHRASE }}
          # Commands to run on the remote VM
          script: |
            set -e
            set -o pipefail
            bash /home/dd/engine/deploy/dd-cyberia/deploy.sh
  sync-and-deploy:
    if: github.event.inputs.job == 'sync-and-deploy'
    name: Remote SSH sync and deploy
    runs-on: ubuntu-latest
    steps:
      - name: Run remote deploy via SSH
        uses: appleboy/ssh-action@v1.2.5
        with:
          # Remote host (secret)
          host: ${{ secrets.SSH_HOST }}
          # Remote user (secret)
          username: ${{ secrets.SSH_USERNAME }}
          # Private key (secret) — the PEM contents (not a path)
          key: ${{ secrets.SSH_PRIV_KEY }}
          # Remote port (optional)
          port: ${{ secrets.SSH_PORT }}
          # Optional: increase timeout for long-running commands
          command_timeout: 60m
          # Optional: if your private key has a passphrase, add:
          # passphrase: ${{ secrets.SSH_KEY_PASSPHRASE }}
          # Commands to run on the remote VM
          script: |
            set -e
            set -o pipefail
            bash /home/dd/engine/deploy/dd-cyberia/sync-deploy.sh
  init:
    if: github.event.inputs.job == 'init'
    name: Remote SSH init deployment
    runs-on: ubuntu-latest
    steps:
      - name: Run remote deploy via SSH
        uses: appleboy/ssh-action@v1.2.5
        with:
          # Remote host (secret)
          host: ${{ secrets.SSH_HOST }}
          # Remote user (secret)
          username: ${{ secrets.SSH_USERNAME }}
          # Private key (secret) — the PEM contents (not a path)
          key: ${{ secrets.SSH_PRIV_KEY }}
          # Remote port (optional)
          port: ${{ secrets.SSH_PORT }}
          # Optional: increase timeout for long-running commands
          command_timeout: 60m
          # Optional: if your private key has a passphrase, add:
          # passphrase: ${{ secrets.SSH_KEY_PASSPHRASE }}
          # Commands to run on the remote VM
          script: |
            set -e
            set -o pipefail
            bash /home/dd/engine/deploy/dd-cyberia/init.sh
