name: Deploy run-name: Deploying to production on: [push] jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Install rsync run: | sudo apt-get update sudo apt-get install rsync -y which rsync # This will verify rsync location - name: Setup SSH env: SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} HOST1: ${{ secrets.HOST1 }} USER: ${{ secrets.USER }} run: | mkdir -p ~/.ssh echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa ssh-keyscan -H $HOST1 >> ~/.ssh/known_hosts - name: Deploy to first host env: HOST1: ${{ secrets.HOST1 }} USER: ${{ secrets.USER }} run: | # First verify the remote directory exists ssh $USER@$HOST1 'rm -rf /var/www/elia.network/html/*' /usr/bin/rsync -avz --delete \ --exclude '.git*' \ ./ $USER@$HOST1:/var/www/elia.network/html/ - name: Reload Nginx env: HOST1: ${{ secrets.HOST1 }} USER: ${{ secrets.USER }} run: | ssh $USER@$HOST1 'sudo systemctl reload nginx'