GitHub Actions: Error: Process completed with exit code 1
Cómo depurar y solucionar 'Process completed with exit code 1' en GitHub Actions. Estrategias para identificar el paso fallido y sus causas.
¿Por qué ocurre?
El error genérico "exit code 1" en GitHub Actions indica que un comando del workflow terminó con error. Las causas más comunes son: - Tests que fallan (`npm test`, `pytest`, etc.) - Build fallido (`npm run build`, `cargo build`, etc.) - Linting errors (`eslint`, `prettier --check`) - Dependencias que no se instalan correctamente - Variables de entorno o secrets no configurados - Permisos insuficientes del GITHUB_TOKEN
Solución paso a paso
1. Leer el log del paso fallido En GitHub → Actions → workflow run → expandir el paso con ❌. El error real está al final del log de ese paso específico.
2. Añadir debug verboso
- name: Debug install
run: npm install --verbose- name: Debug build
run: npm run build -- --debug
3. Continuar en error para ver todos los fallos
- name: Run tests
run: npm test
continue-on-error: true # No para el workflow- name: Run lint
run: npm run lint
continue-on-error: true
4. Variables de entorno / Secrets
jobs:
build:
runs-on: ubuntu-latest
env:
NODE_ENV: production
DATABASE_URL: ${{ secrets.DATABASE_URL }}
steps:
- name: Verificar env
run: echo "DB configurada=${{ secrets.DATABASE_URL != '' }}"
5. Permisos del token
permissions:
contents: write
packages: write
id-token: write
6. Caché de dependencias (evita reinstalaciones rotas)
- name: Cache node_modules
uses: actions/cache@v4
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}- name: Install dependencies
run: npm ci
Cómo evitarlo en el futuro
- Usa `npm ci` en lugar de `npm install` en CI para builds deterministas - Configura todos los secrets necesarios en Settings → Secrets and variables → Actions - Prueba el workflow localmente con `act` (https://github.com/nektos/act) - Añade `set -e` al inicio de scripts bash multi-línea para fallar rápido
¿Quieres que una IA te ayude? Genera el prompt perfecto para tu error:
Generador de Prompts