Despliegue con GitHub Actions
Automatice los pasos de compilación, pruebas y despliegue mediante SSH en un flujo de GitHub Actions.
Despliegue con GitHub Actions es una lección gratuita de PHP Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de PHP Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de PHP Academy incluye 4 lecciones en total.
¿Qué es GitHub Actions?
GitHub Actions es una plataforma de CI/CD integrada en GitHub. Los workflows definidos en .github/workflows/*.yml se ejecutan automáticamente al producirse eventos de push, pull request o programación.
Estructura básica de un workflow
Un workflow consta de uno o más jobs, cada uno con sus propios pasos.
# .github/workflows/deploy.yml
name: Deploy
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up PHP
uses: shivammathur/setup-php@v2
with:
php-version: "8.3"
- name: Install dependencies
run: composer install --no-dev --optimize-autoloader
- name: Run tests
run: vendor/bin/phpunitPaso de implementación mediante SSH
Implemente la aplicación en un servidor mediante SSH después de que las pruebas se completen correctamente.
- name: Deploy to server
uses: appleboy/ssh-action@v1
with:
host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.SERVER_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
cd /srv/myapp
git pull origin main
composer install --no-dev --optimize-autoloader
php artisan migrate --force
php artisan config:cache
php artisan route:cache
sudo systemctl reload php8.3-fpmSecretos de GitHub
Almacene los valores confidenciales (claves SSH, tokens de API y contraseñas de bases de datos) como secretos cifrados del repositorio en Settings → Secrets and Variables.
Almacenamiento en caché de dependencias
Almacene en caché los paquetes de Composer entre ejecuciones para acelerar los workflows.
- name: Cache Composer packages
uses: actions/cache@v4
with:
path: vendor
key: ${{ runner.os }}-composer-${{ hashFiles("composer.lock") }}Ejecución de pruebas
Incluya un contenedor de servicio MySQL o PostgreSQL para las pruebas de integración.
services:
mysql:
image: mysql:8
env:
MYSQL_DATABASE: test
MYSQL_ROOT_PASSWORD: secret
ports: [3306:3306]Variables de entorno en Actions
Pase los secretos como variables de entorno a los pasos del workflow.
- name: Run tests
env:
DB_HOST: 127.0.0.1
DB_DATABASE: test
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
run: vendor/bin/phpunitPuertas de calidad del código
Bloquee las implementaciones si las comprobaciones de calidad del código fallan.
- name: PHPStan static analysis
run: vendor/bin/phpstan analyse src --level=6
- name: PHP_CodeSniffer
run: vendor/bin/phpcs src --standard=PSR12Pruebas matriciales
Realice pruebas simultáneamente con varias versiones de PHP.
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
php: ["8.2", "8.3"]
steps:
- uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}Estrategias de implementación
Enfoques habituales: git pull directo (sencillo), rsync (sincronización rápida de archivos), blue-green (sin tiempo de inactividad) y Deployer PHP (automatización sin tiempo de inactividad). Elija según la tolerancia al tiempo de inactividad.
Resumen
Defina los workflows en .github/workflows/*.yml. Ejecute las pruebas en cada push e implemente al fusionar cambios en la rama principal. Almacene las dependencias en caché, guarde los secretos en GitHub Secrets y añada puertas de calidad antes de la implementación.
Comprobación rápida
¿Dónde se almacenan los valores confidenciales, como las claves SSH, para GitHub Actions?
Preguntas frecuentes
¿La lección «Despliegue con GitHub Actions» es gratis?
Sí — el texto completo de «Despliegue con GitHub Actions» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de PHP Academy, actualiza a CoddyKit PRO. El curso de PHP Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Despliegue con GitHub Actions»?
Automatice los pasos de compilación, pruebas y despliegue mediante SSH en un flujo de GitHub Actions. Practicas PHP Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar PHP Academy?
No se requiere experiencia previa. PHP Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Despliegue con GitHub Actions»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de PHP Academy?
Sí. Cada lección de PHP Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Configuración de Nginx y PHP-FPM
- Variables de entorno y archivos .env
- Despliegue con GitHub Actions
- Contenerización de una aplicación PHP