GMashtalyar

Deploy Process

.

ssh-keygen -t rsa -b 4096 -f ~/.ssh/github
Your identification has been saved in /root/.ssh/github <= this is SSH_PRIVATE_KEY
Your public key has been saved in /root/.ssh/github.pub <= this is public key
sudo nano ~/.ssh/authorized_keys <= public key goes here


Secrets and variables (on repository page)
Actions secrets SSH_PRIVATE_KEY+ SSH_HOST + SSH_USER



name: Deploy process

on:
  push:
    branches:
      - master

jobs:
  deploy:
    name: Deploy
    runs-on: ubuntu-latest
    steps:
      - name: Configure SSH
        env:
          SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
          SSH_HOST: ${{ secrets.SSH_HOST }}
          SSH_USER: ${{ secrets.SSH_USER }}
        run: |
          mkdir -p ~/.ssh/
          echo "$SSH_PRIVATE_KEY" > ~/.ssh/github
          chmod 600 ~/.ssh/github
          cat >>~/.ssh/config <<END
          Host target
            HostName $SSH_HOST
            User $SSH_USER
            IdentityFile ~/.ssh/github
            LogLevel ERROR
            StrictHostKeyChecking no
          END
      - name: Run deploy
        run: |
          ssh target "cd /home/django/django_venv/src && docker compose down && git pull && docker compose build && docker compose up -d"