~/docs /GitHub Actions basico

GitHub Actions basico

GitHub Actions basico

Imported from Notion: GitHub Actions basico

updated:: 2026.07.10

Que resuelve

Guia basica para crear workflows de GitHub Actions, ejecutar tests, usar secrets y depurar errores comunes.

Estructura

Los workflows viven en:

.github/workflows/{WORKFLOW}.yml

Workflow minimo

name: CI

on:
  push:
  pull_request:

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Run tests
        run: echo "run tests here"

Python CI

name: Python CI

on:
  push:
  pull_request:

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: "3.12"
      - run: python -m pip install -r requirements.txt
      - run: python -m pytest

Node CI

name: Node CI

on:
  push:
  pull_request:

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: "22"
          cache: "npm"
      - run: npm ci
      - run: npm test

Triggers utiles

Manual

on:
  workflow_dispatch:

Solo main

on:
  push:
    branches: ["main"]

Programado

on:
  schedule:
    - cron: "0 3 * * *"

Secrets

Usar secret

env:
  API_TOKEN: ${{ secrets.API_TOKEN }}

En un step

- name: Call API
  run: curl -H "Authorization: Bearer $API_TOKEN" https://api.example.com/ping
  env:
    API_TOKEN: ${{ secrets.API_TOKEN }}
warning

No imprimas secrets con echo. GitHub intenta enmascararlos, pero no lo uses como mecanismo de seguridad.

Cache

pip

- uses: actions/setup-python@v5
  with:
    python-version: "3.12"
    cache: "pip"

npm

- uses: actions/setup-node@v4
  with:
    node-version: "22"
    cache: "npm"

Artifacts

Subir artifact

- uses: actions/upload-artifact@v4
  with:
    name: build-output
    path: dist/

Descargar artifact

- uses: actions/download-artifact@v4
  with:
    name: build-output

Debug

Ver contexto basico

- run: |
    pwd
    ls -la
    git status

Activar logs de shell

- run: |
    set -euxo pipefail
    ./scripts/test.sh

Variables

VariableDescripcion
{WORKFLOW}Nombre del archivo YAML

Errores comunes

SintomaCausa probableSolucion
Workflow no apareceArchivo fuera de .github/workflowsRevisa ruta y extension
Falla npm installLockfile requeridoUsa npm ci
Secret vacioNo existe o no disponible en forkRevisa Settings -> Secrets
Tests pasan local y fallanEntorno distintoFija versiones y muestra logs

Checklist final

  • Trigger correcto.

  • Versiones fijadas.

  • Secrets no impresos.

  • Cache si aporta velocidad.

  • Artifacts si necesitas descargar resultados.

- EOF -