Si tu contenido ya vive en un repositorio Git, el botón de publicar más simple es el botón de merge. Esta guía configura GitHub Actions para publicar una carpeta de Markdown con el CLI de Sentilis cada vez que cambia main.
Qué necesitas
- Un repositorio con tu carpeta de contenido — por ejemplo
content/, conpress/,bio/o cualquier otra carpeta de Sentilis. - El token de tu perfil de Sentilis.
1. Guarda el token como secreto
En la configuración del repositorio, agrega un secreto llamado SENTILIS_TOKEN con el token de tu perfil. Nunca hagas commit del token en el repositorio.
2. Agrega el workflow
Crea .github/workflows/publish.yml:
name: Publish content to Sentilis
on:
push:
branches: [main]
paths:
- "content/**"
workflow_dispatch:
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- name: Install the Sentilis CLI
run: npm i -g @sentilis/cli
- name: Authenticate
run: sentilis auth login ${{ secrets.SENTILIS_TOKEN }}
- name: Publish
run: sentilis sync ./content --strict
Qué hace cada parte:
pathsejecuta el workflow solo cuando cambia el contenido.workflow_dispatchagrega un botón para ejecutarlo a mano.--strictaborta la ejecución si alguna entrada tiene un problema de validación, así nada queda medio publicado y el job falla de forma visible.
3. Valida los pull requests
Agrega un segundo job, o un segundo workflow en pull_request, que ejecute los mismos pasos con --dry-run en lugar de --strict. Valida cada entrada sin subir nada, así los problemas aparecen en la revisión:
- name: Validate
run: sentilis sync ./content --dry-run
Varios perfiles
El CLI puede guardar varios perfiles. Si un repositorio publica en más de un perfil — uno por idioma, por ejemplo — ejecuta un job por carpeta, cada uno con su propio secreto de token.
Solución de problemas
- El job falla por un error de validación: es
--stricthaciendo su trabajo. Corrige el archivo que aparece en el log y vuelve a hacer push. - Nada cambia en el sitio: revisa que los archivos estén dentro de la carpeta que sincronizas y que su
statusseapublished.