Despliegue del Backend de PHP + BBDD
3. CI/CD
3.1. Secrets GitHub
ssh-keygen -t ed25519 -C "github-actions"

ssh-copy-id -i vps.pub root@217.154.179.196

ssh -i vps root@217.154.179.196

Ahora subimos todo esto a los secretos
VPS_HOST → IP
VPS_USER → usuario (root)
VPS_SSH_KEY → clave privada

Miramos que el .gitignore no haya nada, en este caso tenía el .github

Creamos los dos directorios y el archivo

deploy.yml
name: Deploy PHP to VPS
on:
push:
branches:
- main
jobs:
ci:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.1'
- name: Validar sintaxis PHP
run: |
find . -type f -name "*.php" -print0 | xargs -0 -n1 php -l
deploy:
needs: ci
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: SSH Agent
uses: webfactory/ssh-agent@v0.9.0
with:
ssh-private-key: ${{ secrets.VPS_SSH_KEY }}
- name: Añadir VPS a known_hosts
run: |
mkdir -p ~/.ssh
ssh-keyscan -H ${{ secrets.VPS_HOST }} >> ~/.ssh/known_hosts
- name: Deploy (git pull)
run: |
ssh ${{ secrets.VPS_USER }}@${{ secrets.VPS_HOST }} "
cd /var/www/html/backend002 &&
git pull origin main
"
Podemos hacer cambios y veremos el workflow funcionado


