Descripción de los flujos de trabajo
Los flujos de trabajo son procesos automatizados que se definen para compilar, probar, empaquetar, liberar o implementar el proyecto. Constan de uno o varios trabajos que se ejecutan en respuesta a eventos específicos del repositorio.
Estructura de flujo de trabajo
Cada flujo de trabajo incluye estos componentes clave:
Desencadenadores (eventos)
Defina cuándo debe ejecutarse el flujo de trabajo: al insertar, solicitar incorporación de cambios, programar o desencadenar manualmente.
Jobs
Conjunto de pasos que se ejecutan en el mismo entorno de ejecución. Los trabajos se ejecutan en paralelo de forma predeterminada, pero se pueden configurar para ejecutarse secuencialmente.
Steps
Tareas individuales dentro de un trabajo que pueden ejecutar comandos, configurar tareas o usar acciones.
Ejecutores
El entorno de computación donde se ejecutan sus trabajos - ya sea hospedado en GitHub o autohospedado.
Ubicación y nomenclatura del flujo de trabajo
Los flujos de trabajo se almacenan como archivos YAML en el .github/workflows directorio del repositorio. El nombre de archivo se convierte en el identificador de flujo de trabajo en la interfaz de usuario de GitHub.
Ejemplo de flujo de trabajo moderno
Este es un ejemplo completo con los procedimientos recomendados actuales:
# .github/workflows/ci.yml
name: CI Pipeline
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
schedule:
- cron: "0 2 * * 0" # Weekly dependency check
env:
NODE_VERSION: "20"
jobs:
test:
name: Test and Lint
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Run linting
run: npm run lint
- name: Run tests with coverage
run: npm run test:coverage
- name: Upload coverage reports
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
build:
name: Build Application
runs-on: ubuntu-latest
needs: test
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Build application
run: npm run build
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: build-files
path: dist/
Mejoras clave en flujos de trabajo modernos
En este ejemplo se muestran los procedimientos recomendados actuales:
-
Versiones de acción más recientes: Uso
@v4de versiones de acciones populares - Almacenamiento en caché de dependencias: acelera la ejecución del flujo de trabajo
- Variables de entorno: administración centralizada de la configuración
-
Dependencias de trabajos:
buildel trabajo solo se ejecuta después detestque se complete con éxito. - Control de artefactos: almacenamiento adecuado y uso compartido de salidas de compilación
- Seguridad: Uso de secretos para datos confidenciales como tokens
Recursos adicionales
Explore estos recursos para mejorar el conocimiento del flujo de trabajo:
- Flujos de trabajo de inicio : plantillas precompiladas para escenarios comunes
- Referencia de sintaxis de flujo de trabajo : documentación completa de sintaxis
- Acciones de Marketplace: acciones aportadas por la comunidad